Skip to content

[aw-failures] dismiss_pull_request_review 404 on stale review_id hard-fails safe_outputs job #49733

Description

@github-actions

Add dismiss_pull_request_review to the safe-outputs report-only failure set — right now a stale review ID hard-fails the whole safe_outputs job. Why: ##[error]2 safe output(s) failed on run 30731801766 came from two dismiss_pull_request_review messages hitting 404 Not Found on pulls.getReview, and that failure propagates as a fatal job error instead of a no-op.

Problem statement

PR Sous Chef (schedule-triggered) failed at job safe_outputs, step "Process Safe Outputs", on run 30731801766 (2026-08-02T04:06Z). Two safe-output messages of type dismiss_pull_request_review (messages 5 and 6) both errored:

##[error]✗ Message 5 (dismiss_pull_request_review) failed: Not Found - https://docs.github.com/rest/pulls/reviews#get-a-review-for-a-pull-request
##[error]✗ Message 6 (dismiss_pull_request_review) failed: Not Found - https://docs.github.com/rest/pulls/reviews#get-a-review-for-a-pull-request
##[error]2 safe output(s) failed:

audit-diff against the nearest successful cohort run (30729572519) shows no firewall anomalies — the only material delta is GitHub core quota consumption (+314%, 58 vs 14 calls) from the extra review lookups, confirming this is an application-level 404, not an infra/auth issue.

Affected workflows and run IDs

  • PR Sous Chef (.github/workflows/pr-sous-chef.lock.yml) — run 30731801766
  • Handler: actions/setup/js/dismiss_pull_request_review.cjs

Probable root cause

actions/setup/js/dismiss_pull_request_review.cjs:228 calls githubClient.rest.pulls.getReview({ ... review_id: reviewId }) for the explicit (non-auto) review_id path. When that review no longer exists — already dismissed, deleted, or a stale ID captured earlier in the same agent turn — the call 404s and is returned as {success: false, error: ...}.

That failure is then treated as fatal because dismiss_pull_request_review is absent from REPORT_ONLY_FAILURE_TYPES in actions/setup/js/safe_output_handler_manager.cjs:671 (currently only assign_to_agent and upload_artifact). This is the same class of problem PR #49648 just fixed for stale/resolved review threads (resolve_pull_request_review_thread) — but the fix wasn't extended to stale/already-dismissed reviews referenced by explicit ID in dismiss_pull_request_review.

Proposed remediation

  1. In dismiss_pull_request_review.cjs, catch the getReview 404 specifically and return a soft no-op ({success: true, skipped: true, reason: "review no longer exists"} or similar) instead of a hard error — mirroring the stale-thread no-op pattern added in fix(safe-outputs): treat stale/resolved review threads as no-ops; allow bot review dismissal #49648.
  2. Alternatively/additionally, add dismiss_pull_request_review to REPORT_ONLY_FAILURE_TYPES in safe_outputs_handler_manager.cjs:671 so a single stale-review 404 can't fail the whole safe_outputs job for unrelated safe outputs in the same run.
  3. Add a regression test in actions/setup/js/dismiss_pull_request_review.test.cjs covering a 404 from pulls.getReview on the explicit review_id path.

Success criteria / verification

  • A dismiss_pull_request_review message targeting a review_id that 404s no longer fails the safe_outputs job; it is logged as a skipped/no-op result.
  • dismiss_pull_request_review.test.cjs includes a case for getReview returning 404 and asserts a non-fatal result.
  • Next PR Sous Chef scheduled run completes with Process Safe Outputs green even if a targeted review was already dismissed/deleted.

Parent: #49245 (rolling failure-investigator report). Analyzed run: 30731801766 (audit + audit-diff vs baseline 30729572519).
Related to #49245

Generated by 🔍 [aw] Failure Investigator (6h) · agent · 109 AIC · ⌖ 33.3 AIC · ⊞ 5.3K · ◷

  • expires on Aug 8, 2026, 11:47 PM UTC-08:00

Activity

  1. github-actions commented on Aug 2, 2026

    @github-actions
    ContributorAuthor

    🍪 Issue Monster selected this for Copilot

    I have identified this issue as a good candidate for automated resolution and requested assignment to the Copilot coding agent.

    If assignment succeeds, the Copilot coding agent will analyze the issue and create a pull request with the fix.

    Om nom nom! 🍪

    🍪 Om nom nom by Issue Monster · gpt54 · 3.41 AIC · ⌖ 6.79 AIC · ⊞ 10.7K · ◷

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

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions