Repository navigation
Description
Recommendation
Stop the Claude log-parser guardrail from calling core.setFailed when the agent actually succeeded — gate it on the harness result, not on logEntries.length === 0. It is painting successful runs red and feeding false signal into the failure dashboards and this very investigator.
Problem statement
The "Parse agent logs for step summary" step fails on Claude runs where the agent completed successfully but agent-stdio.log contains only [DEBUG]/[INFO] plaintext (no structured JSON entries), so the parser extracts zero logEntries and hard-fails the step.
Affected workflow and run IDs
- Workflow:
.github/workflows/avenger.md(Claude engine) — 4 false-failures in the 6h window - Run IDs: §27473035084, §27471579514, §27470367219, §27468988707
- Same guardrail can hit any Claude-engine workflow whose stdio tail is plaintext-only.
Root cause
actions/setup/js/log_parser_bootstrap.cjs:238-242 hard-fails the step (core.setFailed("ERR_CONFIG: Claude execution failed: no structured log entries were produced ...")) whenever the Claude parser returns an empty logEntries array — a guardrail added by .changeset/patch-fail-claude-no-log-entries.md to catch silent startup errors. It produces a false positive when the agent ran fine but emitted no JSON to the parsed log.
Evidence — agent succeeded, parser failed anyway (run 27473035084)
- Upstream agent step:
claude-harness exitCode=0,result.subtype=success,is_error=false, 42 turns, recorded anoopsafe-output (total_cost_usd≈1.79). - Parser printed
"Claude log parsed successfully"immediately before firing the guardrail — self-contradictory. GH_AW_AGENT_OUTPUT=/tmp/gh-aw/agent-stdio.logheld 179 plaintext[DEBUG]/[INFO]lines, 0{...}JSON entries →logEntries.length === 0→core.setFailed.
ERR_CONFIG: Claude execution failed: no structured log entries were produced.
This usually indicates a startup or configuration error before tool execution.
Proposed remediation
- Gate the guardrail on actual agent failure (e.g. only fail when the harness result is missing/
is_errororexitCode != 0); when the agent reports success, treat emptylogEntriesas "no structured entries" (warn) rather thanERR_CONFIG. - Alternatively, fall back to the plaintext stdio summary instead of failing.
Success criteria / verification
- A Claude run that completes with
exitCode=0/result.subtype=successis never marked failed by the log parser. - Avenger false-failure count for "Parse agent logs for step summary" → 0 over a 24h window.
Investigation context: part of the 2026-06-13 19:13Z 6h failure sweep. Full cluster table, correlations, and roadmap are in the companion issue #39140. No tracked issue was closed this window — all are still actively failing.
Related to #29109
Generated by 🔍 [aw] Failure Investigator (6h) · 395.8 AIC · ⌖ 14.4 AIC · ⊞ 5.1K · ◷
- expires on Jun 20, 2026, 11:26 AM UTC-08:00
Recurrence confirmed — 2 more Avenger false-failures in the 2026-06-14 01:38Z 6h window. Same guardrail, same signature (ERR_CONFIG: ... no structured log entries were produced) on runs where the agent actually succeeded:
- Avenger §27478718477 — agent
is_error:false, 96 assistant turns, 30+ successful tool calls (make fmt/lint/test-unit), validnoopsafe-output ingested;safe_outputs/detection/conclusionjobs all succeeded. Only "Parse agent logs for step summary" failed — it logged"Claude log parsed successfully"immediately before raisingERR_CONFIG. - Avenger §27477435506 — identical pattern.
Cumulative ~24h: 6 false-failures (4 prior + 2 here). No fix has landed (log_parser_bootstrap.cjs:238-242 still gates on logEntries.length === 0). Remediation unchanged: gate the guardrail on the harness result (exitCode != 0 / is_error), not on an empty logEntries array.
Filed by [aw] Failure Investigator (6h) — analyzed run https://github.com/github/gh-aw/actions/runs/27484878458.
Generated by 🔍 [aw] Failure Investigator (6h) · 421.4 AIC · ⌖ 12.8 AIC · ⊞ 4.5K · ◷
Activity
github-actions commentedon Jun 13, 2026
🍪 Issue Monster selected this for Copilot
I've 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! 🍪
Copilot commentedon Jun 13, 2026
The agent encountered an error and was unable to start working on this issue: Please try again later, or contact support if the problem persists. (Request id: 1600:35F278:47B9C8E:10AB5052:6A2DB2B0)