Tool dispatch stall regression (#54847) still affecting CLI 2.1.168 — 45 versions of "not planned," 6 watchdog-aborts in 3 days
Original report #54847 was auto-closed on 2026-06-07 with stale label after 28 days inactive. No Anthropic engineer ever engaged despite three independent reporters (myself, @aiken884, @nestorcolt) with cross-platform forensic data (macOS / Cowork desktop / Linux WSL2). The bug is still present on the current release. Re-filing per the bot's own instructions.
Environment
- CLI: 2.1.168 (current as of 2026-06-09)
- OS: macOS Darwin 25.4.0
- Invocation shape: parent-harness subprocess (
claude --print --permission-prompt-tool stdio) - Originally observed on: 2.1.121 – 2.1.123 (per #54847)
- Last known good: 2.1.120
Persistence evidence
Our gateway logs \stuck session recovery: action=abort_embedded_run\ 6 times between 2026-05-30 and 2026-06-01 alone — same fingerprint as the original (\tool_use\ emitted, no \tool_result\, no disk side-effects, no errors, age ~360-380s). Only the external watchdog recovers the subprocess.
Recent samples:
\\\\
2026-05-30T08:13:58Z action=abort_embedded_run age=366s aborted=true drained=true
2026-05-30T08:41:28Z action=abort_embedded_run age=366s aborted=true drained=true
2026-05-30T08:47:58Z action=abort_embedded_run age=362s aborted=true drained=true
2026-06-01T13:47:57Z action=abort_embedded_run age=379s aborted=true drained=true
2026-06-01T16:43:58Z action=abort_embedded_run age=382s aborted=true drained=true
\\
The original signature (from #54847) still holds: assistant message contains a \tool_use\ block, no matching \tool_result\ for that \tool_use_id\ appears later in the same jsonl, the intended side-effect did not occur, no error on stderr, no \Tool permission stream closed before response received\ message.
Watchdog patches still load-bearing
The watchdog from the original report — fast-tool cap at 240s, other-tool cap at 10m — is what keeps our agent fleet recoverable. Full patches: https://gist.github.com/rhinocap/5325adcfc5101e32446026973fa1eeaa
Without it, every embedded run that hits the dispatch stall would hang indefinitely. With it, we get 6+ recoveries per ~3-day window.
Ask
Please reopen #54847 or triage this fresh report with engineering. The original thread had:
- 3 independent reporters across macOS / Cowork / Linux WSL2
- Forensic-quality reproductions with session jsonl evidence
- A working watchdog mitigation gist
- Cross-references to #54891 (master ticket for the broader silent-failure class), #51927 (likely-same bug class)
CC: @ant-kurt
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗