Skip to content

[aw-failures] [aw-fix] Avenger (Claude engine) hard-fails at startup — "no structured log entries were produced" (ERR_CONFIG) be [Content truncated due to length] #44303

Description

@github-actions

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 ConfirmedERR_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:

  1. Transient inference/auth availability at Claude startup (rate-limit, 4xx, or empty response) that aborts before the first log line.
  2. 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.cjsERR_CONFIG) is correct to fail, but it discards the underlying cause, making the failure unactionable from logs alone.

Proposed remediation

  1. 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.
  2. 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.
  3. 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 ·

  • expires on Jul 15, 2026, 5:29 AM UTC-08:00

Metadata

Metadata

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions