[aw-failures] [P1] Design Decision Gate hangs silently mid-tool-use in Claude Code CLI step
- Dominant language
- Go
- Stars
- 5.1k
- Forks
- 541
- Avg merge
- 5h 46m
- Merged PRs (30d)
- 760
Description
### 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](https://github.com/github/gh-aw/actions/runs/32101513747) (2026-08-18 05:05 UTC), [§32089118620](https://github.com/github/gh-aw/actions/runs/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)](https://github.com/github/gh-aw/actions/runs/32109525808) · agent · 251.3 AIC · ⌖ 6.96 AIC · ⊞ 5.9K · [◷](https://github.com/search?q=repo:github%2Fgh-aw+is:issue+%22gh-aw-workflow-call-id:+github%2Fgh-aw%2Faw-failure-investigator%22&type=issues)
> - [x] 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](https://github.com/github/gh-aw/actions/runs/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)](https://github.com/github/gh-aw/actions/runs/32406250112) · agent · 238.8 AIC · ⌖ 7.28 AIC · ⊞ 5.9K · [◷](https://github.com/search?q=repo:github%2Fgh-aw+is:issue+%22gh-aw-workflow-call-id:+github%2Fgh-aw%2Faw-failure-investigator%22&type=issues)
---
### Update (2026-08-22) — reproduced again today, keep this open
Design Decision Gate failed at the "Execute Claude Code CLI" step again: [§32548469031](https://github.com/github/gh-aw/actions/runs/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)](https://github.com/github/gh-aw/actions/runs/32558404501) · agent · 191.4 AIC · ⌖ 11.4 AIC · ⊞ 6.4K · [◷](https://github.com/search?q=repo%3Agithub%2Fgh-aw+is%3Aissue+%22gh-aw-workflow-call-id%3A+github%2Fgh-aw%2Faw-failure-investigator%22&type=issues)
---
### 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](https://github.com/github/gh-aw/actions/runs/32101513747) (2026-08-18 05:05 UTC), [§32089118620](https://github.com/github/gh-aw/actions/runs/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)](https://github.com/github/gh-aw/actions/runs/32109525808) · agent · 251.3 AIC · ⌖ 6.96 AIC · ⊞ 5.9K · [◷](https://github.com/search?q=repo:github%2Fgh-aw+is:issue+%22gh-aw-workflow-call-id:+github%2Fgh-aw%2Faw-failure-investigator%22&type=issues)
> - [x] 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](https://github.com/github/gh-aw/actions/runs/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)](https://github.com/github/gh-aw/actions/runs/32406250112) · agent · 238.8 AIC · ⌖ 7.28 AIC · ⊞ 5.9K · [◷](https://github.com/search?q=repo:github%2Fgh-aw+is:issue+%22gh-aw-workflow-call-id:+github%2Fgh-aw%2Faw-failure-investigator%22&type=issues)
---
### Update (2026-08-22) — reproduced again today, keep this open
Design Decision Gate failed at the "Execute Claude Code CLI" step again: [§32548469031](https://github.com/github/gh-aw/actions/runs/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)](https://github.com/github/gh-aw/actions/runs/32558404501) · agent · 191.4 AIC · ⌖ 11.4 AIC · ⊞ 6.4K · [◷](https://github.com/search?q=repo:github%2Fgh-aw+is:issue+%22gh-aw-workflow-call-id:+github%2Fgh-aw%2Faw-failure-investigator%22&type=issues)
---
### 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](https://github.com/github/gh-aw/actions/runs/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 #55088).
- [§32654551225](https://github.com/github/gh-aw/actions/runs/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:**
- https://github.com/github/gh-aw/actions/runs/32643440704
- https://github.com/github/gh-aw/actions/runs/32654551225> Generated by [🔍 [aw] Failure Investigator (6h)](https://github.com/github/gh-aw/actions/runs/32659532313) · agent · 194.8 AIC · ⌖ 8.85 AIC · ⊞ 6.4K · [◷](https://github.com/search?q=repo%3Agithub%2Fgh-aw+is%3Aissue+%22gh-aw-workflow-call-id%3A+github%2Fgh-aw%2Faw-failure-investigator%22&type=issues)
Contributor guide
Assessment
This issue has not been assessed yet.