Skip to content

PR Review Agent — failures detected 2026-07-23 #1361

Closed

Description

@github-actions

1. Executive Summary

Status: HEALTHY
Period: 2026-07-22T23:44:20Z – 2026-07-23T07:40:10Z (~8 hours)
Result: 1 of 100 runs failed (1.0%) — 57 succeeded, 19 cancelled, 23 skipped

Key findings:

  • Single failure (#58056) has no recoverable log output; root cause is unconfirmed
  • 19 cancellations are concurrency-driven auto-cancels from rapid push bursts (03:06–03:51 UTC cluster), not errors
  • 23 skips are expected conditional exits (trigger fired but job if: conditions not met — normal for check_suite / pull_request_review events on non-PR commits)

Action required: Retrieve and inspect logs for run #58056 to rule out a transient vs. recurring fault before closing.


2. Failure Breakdown

Failure Category Affected Runs Example Error Message
Unknown / logs unavailable 1 (#58056) (no log output captured in report)
Concurrency auto-cancel (not a fault) 19 (workflow cancelled by newer run in same concurrency group)
Conditional skip (not a fault) 23 (job skipped — trigger event did not meet job conditions)

3. Error Patterns

Run #58056 — failure @ 2026-07-23T00:57:42Z

No log content was included in the report for this run. The run is immediately adjacent to a cancelled run (#58057, same second) and a skipped run (#58058, 1 s later), which suggests it fired during the same push burst at ~00:57 UTC. Possible causes in order of likelihood:

  1. Transient GitHub infrastructure error — the run started and was interrupted before the called workflow (pr-review.yml@pr-review/next) could initialise; no repeating pattern in surrounding runs supports a code-level fault.
  2. Reusable workflow ref not found — if pr-review/next tag was absent or mid-move at that instant, the uses: line would fail immediately with Could not find uses reference.
  3. Secret resolution failure — secrets: inherit propagation occasionally fails transiently if the secret backend is temporarily unavailable.

To confirm: run gh run view 58056 --log against petry-projects/.github-private.

Cancellation cluster (03:06–03:51 UTC)

18 of 19 cancellations occur in a tight burst. This is the expected behaviour of GitHub's built-in concurrency cancellation when many pull_request: synchronize or check_suite: completed events fire in rapid succession (e.g., a force-push or a stack of dependent PRs landing). No action needed unless the cancellations are causing reviews to be silently skipped on the final commit — the last run in each burst shows success, confirming the terminal run does complete.


4. Token Scope Analysis

Scopes granted in workflow source (permissions: block):

Permission Level Purpose
contents: read Read Checkout, read repo files
pull-requests: write Write Post review comments, approve/request-changes
checks: read Read React to check_suite events, read check status

Scopes absent / not assessed (no gh auth status output in logs):

Scope Why it may be needed Recommendation
statuses: read Some review engines read commit statuses (not checks) to detect CI pass/fail Add if the engine script calls gh api /repos/.../statuses
issues: read Needed if the agent resolves linked issues for context Add if engine uses issue cross-references
metadata: read Implicitly granted to all GitHub Apps / Actions tokens; not explicitly listed No action needed

No scope-related errors are present in available logs. The permissions block mirrors the documented requirements in pr-review.yml, so no changes are indicated at this time.


5. Recommendations

  1. Retrieve and inspect failed-run logs for #58056

    • Command: gh run view 58056 --log --repo petry-projects/.github-private
    • Why: The single failure is unclassified; without log content it cannot be confirmed as transient. If the error is a reusable-ref resolution failure it would indicate a gap in the pr-review/next tag-move procedure.
    • Expected impact: Identifies whether a fix is needed or the failure can be closed as a one-off.
    • Urgency: MEDIUM — failure rate is 1%; no evidence of recurrence.
  2. Verify pr-review/next tag integrity after every cut-release.sh run

    • File: scripts/cut-release.sh
    • Why: The failure occurred at the same timestamp as a cancel/skip burst, which can coincide with a tag move. A lightweight post-move check (gh api /repos/petry-projects/.github-private/git/ref/tags/pr-review/next) would catch a missing or mis-pointed tag before the next real PR triggers it.
    • Expected impact: Eliminates ref-not-found failures during release cuts.
    • Urgency: LOW — no confirmed occurrence, purely preventive.
  3. Consider adding a concurrency: group to pr-review-trigger.yml with cancel-in-progress: true (if not already in pr-review.yml)

    • Why: The cancellation burst confirms rapid-fire triggering. Making the cancellation policy explicit in the stub (scoped to pr-${{ github.event.pull_request.number }}) prevents silent coverage gaps where neither the cancelled nor the successor run reviews a given commit.
    • Expected impact: Reduces noise cancellations and guarantees exactly one review per head SHA.
    • Urgency: LOW — current behaviour appears to converge correctly (last run in each burst succeeds).

6. Health Score

Health: 9/10 — one undiagnosed isolated failure in an otherwise clean 8-hour window; no recurring errors, cancellations and skips are structurally expected.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    automated-reportCreated by automated workflowhealth-checkAutomated health check report

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions