Repository navigation
[safe-output-health] Safe Output Health Report - 2026-10-14 #68596
Closed
Replies: 1 comment
|
This discussion was automatically closed because it expired on 2026-10-15T04:42:53.808Z.
|
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
safe_outputsjob entry)Monitoring cadence: healthy, but tight. This audit ran 47.9 hours after the previous successful publish (run 38204331412, 2026-10-12T04:34:23Z) — just under the 48h alert threshold. The prior audit itself followed a ~144h gap flagged as a recurring self-health issue. No gap this cycle, but the margin is thin; see Process Improvements below.
Safe Output Job Statistics
safe_outputs(consolidated job — all safe-output types route through one job per run)push_ledger_changes(adjacent ledger-reconciliation job)† Calculated over the 219 executed (non-skipped) runs. 17 runs show
safe_outputsasskippedbecause an upstream job (activation/agent) failed first, not because of a safe-output defect.‡ Only 1
push_ledger_changesexecution was visible in this window's logs, and it failed in the same run as Cluster 1 below — too small a sample to treat as a rate, but it's a direct cascade of that cluster.Per-type breakdown (create_discussion, add_comment, create_issue, etc.) isn't separately measurable from local job logs: gh-aw consolidates all safe-output item types into a single
safe_outputsjob per run, so failures are tracked at the job+step level, not per output type.Error Clusters
Cluster 1:
ledger_appendvalidation failure →push_ledger_changesreconcile failure (RECURRING)safe_outputs(step:Process Safe Outputs),push_ledger_changes(step:Reconcile and push ledger changes)caveman-optimizer-ledger-append-invalid-builtin-fields, first confirmed 2026-10-05 for Daily Caveman Optimizer): aledger_appendsafe-output item whose value fields don't match the safe-outputs ledger handler's expected built-in transaction schema gets rejected, failingProcess Safe Outputseven though other items in the same batch (here,create_discussion) succeed independently — confirming per-item isolation still holds. The rejection leaves nothing forpush_ledger_changesto reconcile, so that job fails too. This is now the second distinct, unrelated workflow to hit the same failure shape, which raises confidence this is a shared bug in the safe-outputs ledger handler's schema/allow-list rather than a one-off authoring mistake in a single workflow.ERR_VALIDATIONmessage text (available for the 2026-10-05 occurrence) was not retrievable for this run —agenticworkflows auditwithartifacts:["all"]returned only the structured summary, notsafe-output-errors.json. This occurrence is matched by step-failure + cascade shape only, so treat it as plausible, not confirmed, until raw error text is pulled for run 38469476854 specifically.push_ledger_changesclean across 4 executions, so this bug is intermittent/payload-dependent, not an always-on break — but it has now reappeared after a clean cycle, confirming the underlying fix from 2026-10-05 is still unshipped.Cluster 2: Copilot-engine sub-agent model routing failure → empty safe-output payload (NEW)
safe_outputs(step:Process Safe Outputs)agentjob's sub-agent invocation, which starved the safe-output payload):grumpy-coder(declared model tier:small, resolved toclaude-haiku-5.5). Thesafeoutputs.submit_pull_request_reviewMCP tool call is logged withstatus: "incomplete"andoutput_size: 0; the run shows 0 created items.claude-haiku-5.5under the Copilot engine, which then tries to route the call through the/chat/completionsAPI surface. That surface can't carry theincluderequest feature the call needs — only/responsessupports it — so the sub-agent invocation hard-fails with a 400 before producing output. Because this workflow'ssubmit_pull_request_reviewsafe-output depended on that sub-agent's result, the main agent session ended with no valid payload, andProcess Safe Outputsthen failed with nothing to process.includefeature would hit the same wall.Root Cause Analysis
API-Related Issues
None this cycle. No GitHub API rate-limit, authentication, or permission errors observed in any of the 236
safe_outputsjob executions (github_rate_limit_usagestayed well under quota across sampled runs).Data Validation Issues
Cluster 1 (
ledger_appendschema mismatch) is the dominant validation issue this cycle, and it's a repeat offender first confirmed 9 days ago in a different workflow.Permission Issues
None observed.
Other Issues
Cluster 2 is an engine/model-routing compatibility bug (Copilot engine + small-model sub-agents + the
includerequest feature), not a safe-outputs-processor bug per se — flagged here because its visible symptom is asafe_outputsjob failure, and because it directly caused a lost safe-output item (the PR review was never submitted).Recommendations
Critical Issues (Immediate Action Required)
None. Both failures this cycle are isolated (1 occurrence each) with confirmed per-item isolation — no batch-wide or systemic outage.
Bug Fixes Required
Ledger handler built-in transaction field validation (recurring, 3rd occurrence since 2026-10-05)
ledger_appendsafe-output items with fields outside the handler's expected built-in schema are rejected, failing the wholesafe_outputsjob step and cascading intopush_ledger_changesreconcile failures.ledger_appendpayload schemas (Daily Caveman Optimizer, Agentic Workflow Audit Agent) to only emit accepted built-in fields, or extend the handler's allow-list to accept workflow-specific custom fields if they're intentional. This was already recommended on 2026-10-05 and remains unshipped.safe_outputsjob,push_ledger_changesjob.Copilot engine model-routing for small/haiku-tier sub-agents
claude-haiku-5.5and get routed to/chat/completions, which can't carry theincluderequest feature some calls need — causing a hard 400 and an empty/incomplete safe-output payload downstream.includeto/responsesregardless of model tier, or ensure "small"/haiku-tier resolution only maps to models/endpoints that support the request's required features.agentjob (sub-agent invocation),safe_outputsjob (starved of valid payload as a result).Configuration Changes
None identified this cycle.
Process Improvements
Monitoring cadence margin
Raw error-text retrievability for ledger failures
ledger_appendoccurrences (2026-09-05-shape audits and now 2026-10-14),agenticworkflows audit/logswithartifacts:["all"]returned only the structured summary, not the rawsafe-output-errors.jsonwith the exactERR_VALIDATIONmessage.Work Item Plans
Work Item 1: Fix ledger_append built-in transaction field validation
ledger_appenditems whose value fields don't match its built-in transaction schema, failingProcess Safe Outputsand cascading intopush_ledger_changesreconcile failures. Confirmed for Daily Caveman Optimizer (2026-10-05) and now matched by shape for Agentic Workflow Audit Agent (2026-10-14, run 38469476854).ERR_VALIDATIONcause via rawsafe-output-errors.jsonfor run 38469476854ledger_appendpayloads to the handler's accepted schema, or extend the handler's allow-listpush_ledger_changesno longer fails when aledger_appenditem is rejected (job should reconcile the remaining valid transactions, or clearly skip rather than fail, when there's nothing to reconcile)ledger_appendpayload shapes against the handler's built-in field schema; align or extend as needed.Work Item 2: Fix Copilot engine routing for small/haiku-tier sub-agents requiring
includeclaude-haiku-5.5, which gets routed to/chat/completions— incompatible with theincluderequest feature some calls need, causing a 400 and starving the safe-output payload.includeare routed to/responsesregardless of resolved model tier, or the "small" tier is mapped to a model/endpoint combination that supports the request's required featuresProcess Safe Outputsfailureincludefeature flag; add a compatibility check or endpoint override for small/haiku-tier requests that need it.Historical Context
Compared against the 2026-10-12 audit (0 failures across 178 executions, 100% success — the first fully clean cycle since 2026-09-11):
Trends
ledger_appendvalidation /push_ledger_changesreconciliation bug family, first confirmed 2026-10-05, clean on 2026-10-12, now recurred in a new workflow on 2026-10-14. This continues the historical pattern (also seen with theapprove_workflow_runprotected-files miscategorization) where safe-output failures are low-frequency, payload-dependent, and tend to reappear in new workflows rather than being fully eliminated.approve_workflow_run, Design Decision Gate allowed-files decline, Smoke Issues/Project credential failures, hardcoded smoke temp-id, triggering-target hard-fail) recurred this cycle either — those remain either fixed or simply not exercised in this window.Metrics and KPIs
safe_outputsjobs; 91.95% if counting the 17 upstream-skipped runs as a flat denominator, though those skips are not safe-output defects)safe_outputs— 217 clean executions out of 219, with both failures isolated to single runspush_ledger_changes— only 1 execution observed this window, and it failed (100% failure rate on a sample of 1; not statistically meaningful but tracks the recurring ledger bug)Process Safe Outputssteps (step "started_at"→"completed_at" spans of ~3-4s before conclusion=failure)Next Steps
safe-output-errors.jsonfor run 38469476854 to confirm (not just shape-match) the ledger_append validation causeincluderequest featureAll reactions