Skip to content

[aw-failures] P1: Claude log-parser guardrail fails SUCCESSFUL runs when stdio has no JSON entries — Avenger 4× false-failures/6 [Content truncated due to length] #39141

Description

@github-actions

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

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 a noop safe-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.log held 179 plaintext [DEBUG]/[INFO] lines, 0 {...} JSON entries → logEntries.length === 0core.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_error or exitCode != 0); when the agent reports success, treat empty logEntries as "no structured entries" (warn) rather than ERR_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=success is 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:

  1. Avenger §27478718477 — agent is_error:false, 96 assistant turns, 30+ successful tool calls (make fmt/lint/test-unit), valid noop safe-output ingested; safe_outputs / detection / conclusion jobs all succeeded. Only "Parse agent logs for step summary" failed — it logged "Claude log parsed successfully" immediately before raising ERR_CONFIG.
  2. 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions