Repository navigation
[safe-output-health] Safe Output Health Report - 2026-10-29 #72866
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by Safe Output Health Monitor. A newer discussion is available at Discussion #73106. |
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-29
Scope: safe-output job failures only (create_discussion, create_issue, add_comment, create_pull_request, etc.). Agent/detection job failures are out of scope (covered by other monitors). Window: 2026-10-28T04:19Z → 2026-10-29T04:19Z (last 24h).
Overview
safe_outputs) job failures confirmed: 48, all with the identical signature: theProcess Safe Outputsstep fails while the rest of the job (download artifact, upload items) succeeds.create-issue-fails-no-result-pr-sous-chef, first seen 2026-09-22, escalated to High/Critical in the 2026-10-28 report after a 12-occurrence spike) that got dramatically worse today (46 occurrences, ~3.8x the prior-day count) before self-resolving around 2026-10-28T15:49-16:00Z. It has stayed clean for the ~12.5h since. Root cause is still unconfirmed — raw step logs have never been successfully retrieved across any of the now 59 total occurrences (13 historical + 46 today).Safe Output Job Statistics
safe_outputs)Process Safe OutputsfailuresAll 476 run directories were scanned for
job_details[].name == "safe_outputs"with a non-success, non-skipped conclusion — no other workflow safe-outputs job failed in this window, and no legacy per-type job names (create_issue,add_comment, etc.) exist anymore; every workflow routes through the single consolidatedsafe_outputsjob.Error Clusters
Cluster 1 (dominant): PR Sous Chef extended outage, 2026-10-28T07:25Z-15:49Z (38 consecutive failures)
safe_outputs->Process Safe Outputs(step 8), consistently ~4s duration before failing.create_issuesafe-output item was still recorded as successfully created (fulltype/provider/timestamp, same shape previously flagged as a possible "missing result fields" symptom) — butadd-comment,approve-workflow-run, anddismiss-pull-request-review(all configured for this workflow) never appear as succeeded items in any of the 46 failures, andUpload Safe Outputs Itemsstill succeeds immediately after.audit.json), §40683971641 (middle of the streak), §40649991672 (near the start of this sub-window).safe_outputsjob itself was not the cause; out of scope here).Cluster 2: Fleet-wide blip, 2026-10-28T04:31Z-05:38Z (9 failures across 2 workflows)
Process Safe Outputsfails,create_issueitem still recorded).close-older-issues/group-by-daycreate-issue options) and strengthens a shared safe-outputs runtime/dependency regression theory for at least this sub-window — the Container Image Security Scancreate-issueconfig has noclose-older-issues/group-by-dayat all.Cluster 3 (minor, likely unrelated): Smoke Project, 2026-10-29T00:09:54Z (1 occurrence)
safe_outputsjobProcess Safe Outputsstep failed, but zero safe-output items were recorded (unlike Clusters 1-2, which always have exactly onecreate_issue).smoke-project.mdis a conformance/smoke-test workflow. No prior history of this pattern for this workflow. Treat as a low-priority one-off pending a second occurrence.Root Cause Analysis
Still unconfirmed after 59 total occurrences (13 historical + 46 today). As flagged in the 2026-10-28 report, this compact log-monitoring pipeline has access to structured
run_summary.json/audit.json(job/step conclusions, timing, recorded safe-output items) but no raw stderr/stdout text for theProcess Safe Outputsstep — confirmed again today viaagenticworkflows auditwith every availableartifactsset (outcomes,all); none return step console output. The only way to get the actual exception/stack trace is a directgh run view --log --job <safe_outputs-job-id>against a live run, which this read-only monitor cannot do.Two competing hypotheses remain open, now with more evidence for each:
close-older-issues/group-by-dayprocessing (or an analogous duplicate-detection step) finds an existing issue, does not populate a full result object, and the handler throws instead of treating it as success. This fits all 46 Cluster-1 occurrences (PR Sous Chef hasclose-older-issues: true,group-by-day: true).close-older-issues/group-by-dayconfig) was hit with the identical signature in the same time window, which theory (1) alone does not explain.Both can be true simultaneously (a shared regression that happens to manifest most visibly through PR Sous Chef aggressive 5-minute schedule). The incident clean self-resolution by ~16:00Z, with no corresponding
create-issuehandler code change found ingit logfor that window (the only merged commit in 14:00-17:00Z PT changed work-queue footer logic,#72632, not safe-outputs code), suggests this may be an infra-side transient (e.g. a backing API dependency, MCP gateway, or token/rate issue) rather than a code regression that was "fixed" by a merge.Recommendations
Critical / Immediate
safe_outputsjob of §40719833571 (last failure in the streak, 2026-10-28T16:01Z) viagh run view 40719833571 --log --job <safe_outputs-job-id>from an authenticated environment. This is the single highest-value action to finally confirm root cause after 59 occurrences across 5+ weeks.investigate-create-issue-failure-pr-sous-chef, proposed 2026-09-22, escalated 2026-10-28) to cover the new Container Image Security Scan occurrence — this is no longer a single-workflow issue.Bug Fixes
close-older-issues/group-by-daypath or equivalent dedup logic): if a duplicate/dedup case is found, it should populate thecreated_itemsentry with the existing issueurl/numberand return success, not fail the step after a partial no-op. File/location: the safe-outputs create-issue processing script referenced bypkg/workflow/safe_outputs_jobs.go/safe_outputs_runtime.go(exact function needs confirmation once raw logs are available).Process Improvements
Process Safe Outputsfailures automatically (e.g., persist asafe-output-errors.jsonorworkflow-logs/safe_outputs.txtartifact on failure) so this daily monitor can self-diagnose without a manualgh run view --log. This exact gap has now blocked root-causing the same issue across two consecutive daily reports and 59 occurrences.safe_outputsjob failure rate per workflow (e.g., >20% of runs in a rolling 6h window) so a recurrence of this incident triggers a same-day page rather than waiting for the next daily audit.Work Item Plans
Work Item 1: Confirm root cause of Process Safe Outputs step failures (PR Sous Chef + Container Image Security Scan)
Process Safe Outputsfailing after acreate_issueitem is still recorded as created. Incident self-resolved ~2026-10-28T16:00Z; no corresponding code fix identified in git history for that window.Work Item 2: Add raw-log capture for safe-outputs job failures
Process Safe Outputsstep persists stderr/stdout to a downloadable artifact on non-zero exitHistorical Context
resolve-review-thread/dismiss-pull-request-reviewpattern and noted the previously-dominantapprove_workflow_runfailure mode had gone quiet — neither reappeared in today window.Metrics and KPIs
create_issueedge case (dedup/no-op path) — 0 failures across 203 other active workflowsNext Steps
gh run view --logoutput for the §40719833571safe_outputsjobProcess Safe Outputsfailures (Work Item 2)References:
All reactions