Fix Avenger's Claude-engine startup path — it produced zero structured log entries and hard-failed ERR_CONFIG on 3 runs in the last 6h, blocking the whole workflow before any tool executes.
The Claude engine exits before emitting a single structured log entry, so parse_claude_log.cjs has nothing to parse and the agent job fails at the Parse agent logs for step summary step. This is a startup/configuration failure, not a tool-execution failure.
Failure signature
##[error]ERR_CONFIG: Claude execution failed: no structured log entries were produced.
This usually indicates a startup or configuration error before tool execution.
Affected workflow & runs (last 6h, github/gh-aw)
| Run |
Time (UTC) |
Signature |
| §28944237120 |
2026-07-08 12:55 |
Confirmed — ERR_CONFIG: no structured log entries were produced at Parse agent logs for step summary |
| §28937890974 |
2026-07-08 ~12:xx |
Avenger failure, same 6h window — signature unverified (log-fetch API was intermittently unavailable during investigation) |
| §28934652958 |
2026-07-08 ~11:xx |
Avenger failure, same 6h window — signature unverified (same API limitation) |
Engine: claude (OTEL_RESOURCE_ATTRIBUTES=...gh-aw.engine.id=claude). 3 Avenger failures total in the window; the representative run is confirmed to carry the ERR_CONFIG signature.
Probable root cause
The Claude CLI process terminated during startup/config generation before writing any JSONL structured-log line. Likely candidates, in order:
- Transient inference/auth availability at Claude startup (rate-limit, 4xx, or empty response) that aborts before the first log line.
- A configuration/setup error surfaced only as a non-zero exit with empty stdout — the current handler collapses all such cases into a single opaque
ERR_CONFIG.
The symptom handler (parse_claude_log.cjs → ERR_CONFIG) is correct to fail, but it discards the underlying cause, making the failure unactionable from logs alone.
Proposed remediation
- Surface the real startup error. Before raising
ERR_CONFIG, capture and echo the Claude CLI's raw stderr/exit code into the step summary so "no structured log entries" points at the actual cause (auth, rate-limit, config) instead of a generic message.
- Add a bounded startup retry. If the engine exits with zero structured entries and a retriable signal (empty output / transient 429/5xx), retry the Execute step 1–2 times with backoff before failing the job.
- Distinguish transient from config. Emit a specific output flag (e.g.
inference_access_error / ai_credits_rate_limit_error, which already exist as job outputs) when the empty-log exit is attributable to inference availability, so transient outages aren't reported as configuration bugs.
Success criteria / verification
- A run whose Claude engine exits before producing structured logs shows the underlying stderr/exit reason in the step summary (no bare
ERR_CONFIG).
- Transient empty-startup exits are retried and, when the retry succeeds, the workflow completes green.
- Genuinely transient inference outages are classified via the existing
inference_access_error / ai_credits_rate_limit_error outputs rather than ERR_CONFIG.
- Over a subsequent 24h window, Avenger no longer accumulates repeated
ERR_CONFIG-with-empty-logs failures.
Notes
References:
Generated by 🔍 [aw] Failure Investigator (6h) · 152 AIC · ⌖ 14.3 AIC · ⊞ 6.2K · ◷
Fix Avenger's Claude-engine startup path — it produced zero structured log entries and hard-failed
ERR_CONFIGon 3 runs in the last 6h, blocking the whole workflow before any tool executes.The Claude engine exits before emitting a single structured log entry, so
parse_claude_log.cjshas nothing to parse and theagentjob fails at the Parse agent logs for step summary step. This is a startup/configuration failure, not a tool-execution failure.Failure signature
Affected workflow & runs (last 6h, github/gh-aw)
ERR_CONFIG: no structured log entries were producedat Parse agent logs for step summaryEngine:
claude(OTEL_RESOURCE_ATTRIBUTES=...gh-aw.engine.id=claude). 3 Avenger failures total in the window; the representative run is confirmed to carry theERR_CONFIGsignature.Probable root cause
The Claude CLI process terminated during startup/config generation before writing any JSONL structured-log line. Likely candidates, in order:
ERR_CONFIG.The symptom handler (
parse_claude_log.cjs→ERR_CONFIG) is correct to fail, but it discards the underlying cause, making the failure unactionable from logs alone.Proposed remediation
ERR_CONFIG, capture and echo the Claude CLI's raw stderr/exit code into the step summary so "no structured log entries" points at the actual cause (auth, rate-limit, config) instead of a generic message.inference_access_error/ai_credits_rate_limit_error, which already exist as job outputs) when the empty-log exit is attributable to inference availability, so transient outages aren't reported as configuration bugs.Success criteria / verification
ERR_CONFIG).inference_access_error/ai_credits_rate_limit_erroroutputs rather thanERR_CONFIG.ERR_CONFIG-with-empty-logs failures.Notes
stream_optionstotype=anthropicprovider, upstream 400 kills [Content truncated due to length] #43031 (Copilot BYOKstream_options). None address the Claude-engine empty-startup path.EACCES /tmp/gh-aw/sandbox/firewall/logs, uid=1001) is already tracked by [aw-failures] [aw-fix] Smoke CI sandbox setup hard-fails — stale root-owned /tmp/gh-aw/sandbox/firewall blocks AWF (uid=1001) #44242 and remained active as recently as run §28944424412 (12:58 UTC) — left open, no new issue.References: