[safe-output-health] Safe Output Health Monitor 2026-08-24 #55280
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by Safe Output Health Monitor. A newer discussion is available at Discussion #55646. |
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.
Executive Summary
Audited all agentic workflow runs in
github/gh-awfrom the last 24 hours (290 runs analyzed, spanning roughly 2026-08-23 04:00 UTC through 2026-08-24 04:08 UTC), focused exclusively on safe-output job failures (the centralizedsafe_outputsjob that processescreate-issue,create-pull-request,create-discussion,add-comment,add-labels,update-issue,push-to-pull-request-branch,missing-tool, etc.). Agent-job failures, detection-job failures, and activation failures are out of scope for this monitor and are covered elsewhere.2 safe-output job failures were found in the window, both new failure signatures not seen in the prior two daily audits (2026-08-22, 2026-08-23):
create-issueoutput.The positive news: the previously recurring "PR Sous Chef / safe_outputs / Process Safe Outputs" failure (3 occurrences across the 2026-08-22 and 2026-08-23 audits) did not recur across PR Sous Chef's 39 runs in this window — a break in what had been a flat, unresolved trend.
A tooling note: this audit's persistent cache-memory store at
/tmp/gh-aw/cache-memory/safe-output-health/was read-only in this sandbox run (writes failed withEROFS), so today's findings could not be appended to the historical JSON files there. This report captures the full findings; a future run with write access should backfill2026-08-24.jsonusing the data below.Job Statistics
safe_outputsjobsafe_outputsjobs failedsafe_outputsjobs succeeded (best-effort count)safe_outputsjobs skipped or other (best-effort)missing_tool/missing_data/noop-driven failuresCaveat:
run_summary.jsonserializes job fields (name/status/conclusion) in inconsistent key order across runs, which breaks exact regex-based aggregation in this sandbox (no PCRE2 lookaround available, and a full 290-file "skipped" scan timed out at 20s). The succeeded/skipped split is a best-effort count, not an authoritative total. The failure count of 2 is confirmed via targeted per-run inspection, independent of the aggregate regex counts.Error Clusters
Cluster 1: GitHub App token generation failure (NEW)
Generate GitHub App token(in thesafe_outputsjob)Checkout repository,Configure Git credentials,Process Safe Outputs) were skipped. Zero safe-output items were applied, even though the agent turn completed successfully and called thenoopsafe-output tool.safe-outputs.github-appconfig (client-id: ${{ vars.APP_ID }},private-key: ${{ secrets.APP_PRIVATE_KEY }}) is required because itscreate-pull-requestoutput writes to protected paths (.github/workflows/*.md,*.lock.yml) that exceed defaultGITHUB_TOKENpermissions.Cluster 2:
Process Safe Outputsfailure in create-issue handling (NEW)Process Safe Outputs(in thesafe_outputsjob) — all preconditions (checkout, git credentials,GH_HOSTconfig) succeeded first.create-issueoutput (withtitle-prefix,labels,close-older-issues: true,expires: 7d) was not applied.Cluster 0 (for context, not new): PR Sous Chef recurring pattern — broken streak
safe_outputs/Process Safe Outputsfailure, tracked asconfirmed_recurring/flat_unresolved.Root Cause Analysis
Raw step-level stderr/console output for the
safe_outputsjob is not retrievable via theagenticworkflowsMCP CLI or the pre-downloaded log artifacts in this sandbox — only structured per-step pass/fail conclusions are available (confirmed again this run via a targeted re-fetch withartifacts: ["all"], which still returned onlyepisodes: []and aggregate counts). This is a standing tooling limitation, not something retried indefinitely.Given that constraint, root causes are hypothesized from structural evidence:
vars.APP_IDorsecrets.APP_PRIVATE_KEYbeing invalid, expired, missing, or the App installation lacking access togithub/gh-aw. It is aworkflow_dispatchrun (manually triggered bypelikhan), so this is not (yet) a scheduled-recurrence risk, but it will recur on every future dispatch/schedule of this workflow until the App credentials are fixed.create-issueoutput — no unusual batch size or multi-type complexity like PR Sous Chef. This suggests either a transient issue (API rate limit, network blip inside the sandboxed job) or a validation edge case specific to this run's issue content (e.g. title/label conflict withclose-older-issues: true, or an oversized/malformed body). Cannot be confirmed without raw logs.Recommendations
Immediate Actions
vars.APP_IDandsecrets.APP_PRIVATE_KEYare correctly set for the repo/org and that the GitHub App has an active installation with write access togithub/gh-aw, specifically for the Daily Harness Experiment Proposer workflow's needs (writing.github/workflows/*).Process Safe Outputsfailure recurs; a single occurrence is not yet enough to confirm a systemic bug vs. a transient blip.Bug Fixes
safe_outputsjob, so future audits don't have to infer root cause from step isolation alone.Configuration Changes
Process Improvements
safe_outputsjob specifically (even just stderr for the "Generate GitHub App token" and "Process Safe Outputs" steps), since this has now been the single biggest blocker to root-causing safe-output failures across all three daily audits (2026-08-22, 2026-08-23, 2026-08-24)./tmp/gh-aw/cache-memory/safe-output-health/) was read-only in this run — confirm write access is restored so daily audit history and recurring-pattern tracking stay continuous.Work Item Plans
Cluster 1 — GitHub App token generation failure (Daily Harness Experiment Proposer)
APP_ID/APP_PRIVATE_KEYvalidity and App installation scope forgithub/gh-aw.workflow_dispatchto confirm the fix.Cluster 2 — Process Safe Outputs failure (Designer Drift Audit)
error-patterns.jsonat occurrence-count 1 for future correlation.Historical Context and Trends
Process Safe Outputsfailed in 2/24 sampled runsTrend read: the failure count has stayed flat at 2/day for three consecutive audits, but the composition changed entirely today — no repeat of the previously dominant PR Sous Chef pattern, replaced by two first-time signatures in two different workflows. This points away from a single systemic bug and toward either (a) normal background noise at a low, roughly constant rate across many workflows, or (b) coincidence that should be watched for another 1-2 days before drawing conclusions either way.
Metrics and KPIs
process-safe-outputs-batch-abort[PR Sous Chef],checkout-actions-folder-infra-flake[PR Sous Chef],github-app-token-generation-failure[Daily Harness Experiment Proposer, new],process-safe-outputs-create-issue[Designer Drift Audit, new])Next Steps
Process Safe Outputsfailure./tmp/gh-aw/cache-memory/safe-output-health/so this audit's findings can be persisted into the historical JSON tracking files.safe_outputsjob so future audits can move from structural inference to confirmed root causes.All reactions