Claude Code Now Interrupts Its Own Goals After 30 Minutes of Waiting
Two fixes in 2.1.234 treat a stalled autonomous goal as a failure instead of progress: a forced check-in at 30 minutes, and a goal that clears itself when the turn dies. Every in-house agent has both bugs.
NeuroX AI · August 19, 2026

Two lines in the Claude Code 2.1.234 changelog fix the same class of bug. When background tasks keep a /goal waiting for 30+ minutes, Claude now checks in on them instead of waiting indefinitely. And a goal now clears itself with a notice when the turn dies on an unrecoverable error — revoked auth, an exhausted credit balance, a context overflow — instead of staying armed.
Neither is a feature. Both are admissions that an autonomous loop cannot tell working from stopped. A goal is a promise to keep going until a condition is met. Blocked on a subprocess that will never return, that promise reads identically to progress: no error, no output, no completion. The loop is alive. The work isn't.
The second fix is the sharper one. An armed goal that outlives its session is worse than no goal, because the operator believes something is still driving toward an outcome that nothing is driving toward. Fail-clear beats fail-silent — and the notice matters as much as the clearing.
In-house agents inherit both failure modes for free. Give one a goal and a fleet of background tasks and you have built something with no timeout, no heartbeat, and no way to separate a 40-minute compile from a dead one. Anthropic shipped CLAUDE_CODE_GOAL_CHECKIN_MINUTES because the right interval is workload-specific. But zero is not the default, and "wait forever" was never a value anyone chose deliberately.
Autonomy is not the hard part. Knowing whether it is still happening is.