Skip to content

[aw-failures] [P1] Design Decision Gate hangs silently mid-tool-use in Claude Code CLI step #53619

Description

@github-actions

Fix: Design Decision Gate hangs silently mid-tool-use in the Claude Code CLI step

Fix the Design Decision Gate workflow's Claude Code CLI step — it hangs and dies mid-Read of the PR diff with zero error signal, hitting 2 runs in a single day.

Affected workflow: .github/workflows/design-decision-gate.lock.yml ("Design Decision Gate")
Runs: §32101513747 (2026-08-18 05:05 UTC), §32089118620 (2026-08-18 01:41 UTC)

Evidence

Captured log tail (run 32101513747)

The agent reads /tmp/gh-aw/agent/adr-prefetch-summary.json and /tmp/gh-aw/agent/pr.json, then issues a Read on /tmp/gh-aw/agent/pr.diff (24 files, 182 business-logic additions). The captured log stops there — no tool_result, no further assistant turn, no ##[error]/exit code line anywhere in the 50-line tail.

Run 32089118620 (same workflow, ~3.5h earlier) also failed but its step-level logs were unavailable during this investigation pass (transient API connectivity issue) — confirmed only via run metadata that it failed at the same workflow.

Probable root cause

Timeout/hang signature, not a clean failure: the CLI process appears to be killed while blocked on a large-diff Read, and nothing in the workflow surfaces that as a distinguishable error — the log just goes silent.

Proposed remediation

  1. Add an explicit step-level timeout with a clear ##[error] message when the Claude Code CLI step exceeds its budget, instead of a bare kill.
  2. Cap or paginate the diff size handed to the agent — large Read calls on pr.diff are the apparent hang point in both failures.
  3. Watch the next few Design Decision Gate runs for size-correlation; add a diff-size guard before invoking the gate if confirmed.

Success criteria

Design Decision Gate runs complete (pass or fail) without silent mid-tool-use termination; timeouts show an explicit error in logs; similarly-sized PR diffs no longer trigger the hang.

Parent: #53129
Related to #53129

Generated by 🔍 [aw] Failure Investigator (6h) · agent · 251.3 AIC · ⌖ 6.96 AIC · ⊞ 5.9K ·

  • expires on Aug 24, 2026, 11:21 PM UTC-08:00

Correction — this is not a silent hang, it's a 429 invocation-cap failure. Keep this open.

One-sentence rationale: Design Decision Gate's run today fails fast and loud with Maximum LLM invocations exceeded (30 / 30), a non-retryable rate-limit guard — not the silent hang this issue currently describes.

Fresh occurrence (2026-08-20): Design Decision Gate — §32394421229. Claude Code CLI harness logs confirm isRateLimitError=true and treat the condition as non-retryable, terminating the run immediately once the 30-invocation cap is hit.

Why this stays open: no commit since this issue opened has touched this workflow's .md/.lock.yml with a targeted fix — the one nearby commit doesn't address the invocation cap. Not closing per the tool-denial-limit rule.

Proposed remediation: raise the per-run LLM invocation cap for this workflow, or split its task into smaller steps so it stays under 30 invocations. Update the issue title/description to reflect the real failure mode (429 cap, not hang) so future triage isn't misled.> Generated by 🔍 [aw] Failure Investigator (6h) · agent · 238.8 AIC · ⌖ 7.28 AIC · ⊞ 5.9K ·


Update (2026-08-22) — reproduced again today, keep this open

Design Decision Gate failed at the "Execute Claude Code CLI" step again: §32548469031 (2026-08-22 03:15 UTC). Given the prior correction on this issue (2026-08-20) established the real failure mode as the 30/30 LLM-invocation cap (Maximum LLM invocations exceeded), not a silent hang, today's recurrence is most likely the same cap being hit again rather than a new hang — but I could not confirm the exact error line for this run: gh run view/log download hit transient api.github.com connectivity errors during this investigation pass, same class of gap noted for run 32089118620 earlier in this issue's history.

Not closing — no commit since this issue opened touches design-decision-gate.md/.lock.yml with a fix for either the invocation cap or the diff-size hang theory, so the underlying condition (whichever it is) is still unaddressed.> Generated by 🔍 [aw] Failure Investigator (6h) · agent · 191.4 AIC · ⌖ 11.4 AIC · ⊞ 6.4K ·


Fix: Design Decision Gate hangs silently mid-tool-use in the Claude Code CLI step

Fix the Design Decision Gate workflow's Claude Code CLI step — it hangs and dies mid-Read of the PR diff with zero error signal, hitting 2 runs in a single day.

Affected workflow: .github/workflows/design-decision-gate.lock.yml ("Design Decision Gate")
Runs: §32101513747 (2026-08-18 05:05 UTC), §32089118620 (2026-08-18 01:41 UTC)

Evidence

Captured log tail (run 32101513747)

The agent reads /tmp/gh-aw/agent/adr-prefetch-summary.json and /tmp/gh-aw/agent/pr.json, then issues a Read on /tmp/gh-aw/agent/pr.diff (24 files, 182 business-logic additions). The captured log stops there — no tool_result, no further assistant turn, no ##[error]/exit code line anywhere in the 50-line tail.

Run 32089118620 (same workflow, ~3.5h earlier) also failed but its step-level logs were unavailable during this investigation pass (transient API connectivity issue) — confirmed only via run metadata that it failed at the same workflow.

Probable root cause

Timeout/hang signature, not a clean failure: the CLI process appears to be killed while blocked on a large-diff Read, and nothing in the workflow surfaces that as a distinguishable error — the log just goes silent.

Proposed remediation

  1. Add an explicit step-level timeout with a clear ##[error] message when the Claude Code CLI step exceeds its budget, instead of a bare kill.
  2. Cap or paginate the diff size handed to the agent — large Read calls on pr.diff are the apparent hang point in both failures.
  3. Watch the next few Design Decision Gate runs for size-correlation; add a diff-size guard before invoking the gate if confirmed.

Success criteria

Design Decision Gate runs complete (pass or fail) without silent mid-tool-use termination; timeouts show an explicit error in logs; similarly-sized PR diffs no longer trigger the hang.

Parent: #53129
Related to #53129

Generated by 🔍 [aw] Failure Investigator (6h) · agent · 251.3 AIC · ⌖ 6.96 AIC · ⊞ 5.9K ·

  • expires on Aug 24, 2026, 11:21 PM UTC-08:00

Correction — this is not a silent hang, it's a 429 invocation-cap failure. Keep this open.

One-sentence rationale: Design Decision Gate's run today fails fast and loud with Maximum LLM invocations exceeded (30 / 30), a non-retryable rate-limit guard — not the silent hang this issue currently describes.

Fresh occurrence (2026-08-20): Design Decision Gate — §32394421229. Claude Code CLI harness logs confirm isRateLimitError=true and treat the condition as non-retryable, terminating the run immediately once the 30-invocation cap is hit.

Why this stays open: no commit since this issue opened has touched this workflow's .md/.lock.yml with a targeted fix — the one nearby commit doesn't address the invocation cap. Not closing per the tool-denial-limit rule.

Proposed remediation: raise the per-run LLM invocation cap for this workflow, or split its task into smaller steps so it stays under 30 invocations. Update the issue title/description to reflect the real failure mode (429 cap, not hang) so future triage isn't misled.> Generated by 🔍 [aw] Failure Investigator (6h) · agent · 238.8 AIC · ⌖ 7.28 AIC · ⊞ 5.9K ·


Update (2026-08-22) — reproduced again today, keep this open

Design Decision Gate failed at the "Execute Claude Code CLI" step again: §32548469031 (2026-08-22 03:15 UTC). Given the prior correction on this issue (2026-08-20) established the real failure mode as the 30/30 LLM-invocation cap (Maximum LLM invocations exceeded), not a silent hang, today's recurrence is most likely the same cap being hit again rather than a new hang — but I could not confirm the exact error line for this run: gh run view/log download hit transient api.github.com connectivity errors during this investigation pass, same class of gap noted for run 32089118620 earlier in this issue's history.

Not closing — no commit since this issue opened touches design-decision-gate.md/.lock.yml with a fix for either the invocation cap or the diff-size hang theory, so the underlying condition (whichever it is) is still unaddressed.> Generated by 🔍 [aw] Failure Investigator (6h) · agent · 191.4 AIC · ⌖ 11.4 AIC · ⊞ 6.4K ·


Design Decision Gate failed twice more today (2026-08-23) — but with two DIFFERENT root causes, not the large-diff hang this issue tracks

One-sentence rationale: don't fold these into the "silent hang on large diff" root cause below — the auto-diagnostic bot identified a distinct guardrail trip, and this workflow now has 3 separate open issues (#53619, #54898, #54462) for 3 separate failure modes, which needs consolidated triage.

New occurrences today:

  • §32643440704, 13:47 UTC — auto-diagnosed by GH Actions as "Engine Max Runs Exceeded": the claude engine hit the workflow's max-runs guardrail and could not continue (tracked separately as [aw] Design Decision Gate 🏗️ failed #55088).
  • §32654551225, 17:21 UTC — same Execute Claude Code CLI step failure, but the captured 50-line tail is only an MCP tool-schema dump (no visible error) — same "cause unclear, low evidence" shape flagged by the prior investigation cycle for this workflow's other failures.

Action: these are NOT the diff-size hang described above. If max-runs is being hit legitimately (task needs more invocations), raise the limit; if it's a runaway retry loop, that's a distinct bug from the hang. Recommend a dedicated pass across Design Decision Gate's now-3 open issues (#53619, #54898, #54462) plus this new max-runs signature to determine whether they share one underlying flakiness source (e.g., large/complex PR diffs triggering multiple failure surfaces) or are truly independent bugs.

References:

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