Repository navigation
[safe-output-health] Safe Output Health Report - 2026-10-30 #73106
Closed
Replies: 1 comment
|
This discussion was automatically closed because it expired on 2026-10-31T04:49:25.791Z.
|
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
🏥 Safe Output Health Report - 2026-10-30
Executive Summary
before_run_id/date-range parameters closed the gap, so this report covers the full 24h window (530 runs combined across both fetches).safe_outputs/ "Process Safe Outputs"), spanning 3 workflowsNote on workflow count: a diagnostic query against the first log batch's
summary.jsonwas run after two follow-upagenticworkflows logscalls for deep-dive root-causing; those calls refreshed the cachedsummary.jsonin place, so the batch-1 unique-workflow count could not be recomputed afterward. This does not affect the failure analysis below, which was captured before the file was overwritten.Safe Output Job Statistics
This repository's current compiled workflows process all safe-output types through a single unified
safe_outputsjob (step name "Process Safe Outputs"), not separate per-type jobs as older architectures used. A full type-by-type success/failure breakdown across all 521 executions would require per-run inspection beyond this audit's scope; the table below reflects the 5 confirmed failures only.add_commentcreate_pull_request_review_commentsubmit_pull_request_reviewcomment_memoryOverall job-step success rate: (521 − 5) / 521 ≈ 99.0%.
Error Clusters
This is the long-tracked recurring cluster
failure-f3527e2bef0656a6(job=safe_outputs, step="Process Safe Outputs"), first logged 2026-08-22 and present in nearly every audit since under the working labelcreate-issue-fails-no-result-pr-sous-chef. Today, for the first time in several audit cycles, raw error text was successfully retrieved for 4 of the 5 occurrences (viaagenticworkflows logswithartifacts:["all"], filtered byworkflow_name+ a narrowstart_date/end_datewindow — theaudittool returned only structured, byte-identical summaries with no raw text regardless of theartifactsvalue tried). This resolves the evidence gap flagged in roughly half of all prior audits and reveals the cluster is not one root cause — it shares a step-level symptom across at least three independent failure modes.Cluster 1: PR Sous Chef
add_comment— "Bad credentials" (401)safe_outputs/ "Process Safe Outputs".github/workflows/pr-sous-chef.lock.yml), both schedule-triggered, enginepi, modelcopilot/claude-haiku-4.5create_issuefield-shape defect with nourl/numberincreated_items; today's two occurrences are a genuinely different failure mode (confirmederrorCode: E099with explicit "Bad credentials" text) affecting a different safe-output type (add_comment).add_commentoutput. Recurring (2x in ~18h) rather than a one-off blip.Cluster 2: Installation-wide GitHub API rate limit — concurrent PR-review bots
safe_outputs/ "Process Safe Outputs".github/workflows/mattpocock-skills-reviewer.md) and PR Code Quality Reviewer (.github/workflows/pr-code-quality-reviewer.md), both pull_request-triggeredpulls.createReview. A single retry attempt was insufficient to recover.create_pull_request_review_comment,submit_pull_request_review, and in one casecomment_memorytoo) — not partial failures.(Known, dormant today) Create_issue missing-result-fields shape
The historically dominant sub-case of this cluster (an agent-side
create_issuecall that returns with onlytype/provider/timestampand nourl/number/id) — responsible for the 2026-10-28/29 incident spike (48 occurrences in ~19.6h) — had zero occurrences today. Its root cause remains unconfirmed from raw text (none of today's occurrences matched this shape); it should continue to be tracked separately from the two new causes above.Root Cause Analysis
API-Related Issues
Both clusters above are, at bottom, API-related: one is an authentication failure (401 Bad credentials), the other is a secondary rate limit (429-class, surfaced as a GitHub REST abuse-detection response) triggered by concurrent installation-wide usage. These are mechanically distinct and should not be conflated — a credential fix will not address the rate-limit cluster or vice versa.
Data Validation Issues
None observed in today's window for in-scope safe-output jobs.
Permission Issues
None observed today beyond the credentials/rate-limit issues above (the previously-tracked
approve_workflow_runfork-PR PAT-scope gap and protected-files-decline-miscategorization patterns did not recur today).Other Issues
None.
Recommendations
Critical Issues (Immediate Action Required)
add_commentauthentication failures ("Bad credentials")add_commentcalls from this workflow'ssafe_outputsjob, recurring twice 17.5 hours apart on schedule-triggered runs.Bug Fixes Required
pulls.createReviewunder installation rate limitspulls.createReviewforcreate_pull_request_review_comment/submit_pull_request_review)create_pull_request_review_comment,submit_pull_request_review,comment_memoryConfiguration Changes
pull_requestand can fire within seconds of each other on the same PR, each making unthrottled Reviews-API calls.Process Improvements
agenticworkflows logs(notagenticworkflows audit, which returns only structured summaries regardless of theartifactsparameter) withartifacts:["all"], filtered byworkflow_nameplus a narrowstart_date/end_datewindow bracketing the known failing run, reliably downloadssafe-output-errors.jsonwith fullerrorCode/message/failures[]text. This should be the default first move for any future "Process Safe Outputs" /safe_outputs-job investigation, replacing the structured-summary-only approach.Work Item Plans
Work Item 1: Investigate PR Sous Chef add_comment "Bad credentials" (401)
add_commentsafe-output items with a direct GitHub REST 401 "Bad credentials" error. Determine whether the credential used by this workflow'ssafe_outputsjob is expiring, being incorrectly rotated, or affected by a schedule-trigger-specific race.safe_outputsjob specifically for schedule-triggered dispatches; compare with other schedule-triggered workflows that did not fail in this window.Work Item 2: Harden review-finalization retries against installation rate limits
pulls.createReview(backingcreate_pull_request_review_commentandsubmit_pull_request_review) exhausts its single retry attempt almost immediately when an installation-wide secondary rate limit is hit, turning a transient, short-lived condition into a hard job failure that loses 100% of the review's output.Historical Context
This failure signature (
failure-f3527e2bef0656a6, job=safe_outputs, step="Process Safe Outputs") is the single longest-running recurring pattern tracked by this monitor, first logged 2026-08-22 and appearing in the majority of audits since, almost always on PR Sous Chef. Its working label (create-issue-fails-no-result-pr-sous-chef) reflected only its most frequently-observed sub-case. Yesterday's audit (2026-10-29) reported a 48-occurrence incident spike in that sub-case, self-resolved by the time of reporting, with the evidence gap for raw error text still open after 59 cumulative occurrences across 3 reports.Today's audit materially advances this investigation: for the first time, raw error text was retrieved for 4 of 5 occurrences, and none of them match the previously-dominant missing-result-fields shape. Instead, two entirely distinct and independently actionable root causes were confirmed — an authentication failure and an installation rate limit — demonstrating that this long-tracked cluster is actually an umbrella over multiple unrelated underlying bugs that happen to share the same step-level symptom (
safe_outputsjob / "Process Safe Outputs" step failing). Future audits should track these as separate named issues rather than continuing to roll them into one "PR Sous Chef Process Safe Outputs" bucket.Trends
failure-f3527e2bef0656a6step-level symptom remains the single most persistent pattern in this monitor's 10-week history, but is now understood to be multi-causal rather than one bug.Metrics and KPIs
safe_outputsjob executions succeeded)add_comment,create_pull_request_review_comment,submit_pull_request_review, andcomment_memoryhad zero observed failures in this windowadd_comment(PR Sous Chef) and the Reviews-API-backed types (create_pull_request_review_comment,submit_pull_request_review) tied, 2 failing runs eachNext Steps
add_comment401 "Bad credentials" authentication failure (Work Item 1)pulls.createReviewretry/backoff against installation-wide rate limits (Work Item 2)create_issuemissing-result-fields shape (dormant today, root cause still unconfirmed after 59+ cumulative occurrences)agenticworkflows logs ... artifacts:["all"]+ narrow workflow/date-window technique as the default first step for future "Process Safe Outputs" investigationsAll reactions