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
- 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.
- Cap or paginate the diff size handed to the agent — large
Read calls on pr.diff are the apparent hang point in both failures.
- 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 · ◷
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 · ◷
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-
Readof 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.jsonand/tmp/gh-aw/agent/pr.json, then issues aReadon/tmp/gh-aw/agent/pr.diff(24 files, 182 business-logic additions). The captured log stops there — notool_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
##[error]message when the Claude Code CLI step exceeds its budget, instead of a bare kill.Readcalls onpr.diffare the apparent hang point in both failures.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
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=trueand 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.ymlwith 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 · ◷