[BUG] Tool calls auto-interrupted after manual Escape - abort state persists within session
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [ ] I am using the latest version of Claude Code
What's Wrong?
After manually interrupting Claude (pressing Escape), subsequent tool calls in the same session are automatically interrupted without any user input.
Symptoms:
- "Interrupted · What should Claude do instead?" appears twice (two lines)
- Occurs intermittently for ~15-20 minutes after the manual interrupt
- Does not occur in a new session (different process)
Observed timeline:
- User presses Escape to interrupt Claude during a task
- User sends a new message
- Claude attempts to call a tool (e.g.,
gh issue list) - Tool is immediately interrupted with two "Interrupted" lines
- This repeats for multiple tool calls over ~15-20 minutes
- Eventually, tools start working again
What Should Happen?
After a manual interrupt, new tool calls should execute normally. The abort state from the manual interrupt should not persist and affect subsequent tool calls.
Error Messages/Logs
● Bash(cd /workspaces/project && gh issue list --limit 3 --json number,title 2>&1)
⎿ Interrupted · What should Claude do instead?
⎿ Interrupted · What should Claude do instead?
Note: The same command succeeds in a new session:
● Bash(cd /workspaces/project && gh issue list --limit 3 --json number,title 2>&1)
⎿ [{"number":2,"title":"..."},{"number":1,"title":"..."}]
Steps to Reproduce
- Start a Claude Code session
- Begin a task that involves tool calls
- Press Escape to interrupt Claude mid-task
- Send a new message that triggers a tool call (e.g., "run
gh issue list") - Observe: Tool is immediately interrupted with two "Interrupted" lines
- Repeat step 4 — the issue persists for ~15 minutes
Note: The exact conditions may vary. In our case, the issue was 100% reproducible after a manual interrupt, but recovered after ~16 minutes.
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.29 (Claude Code)
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
iTerm2
Additional Information
Related Issues:
- #20781 describes "self-interruption" but with different symptoms (
/clearinjection, API 400 error)
Key observation from JSONL transcript:
The time between tool_use and tool_result (with rejection) is only 5-12ms, compared to ~500ms+ for successful tool execution. This indicates the tool is aborted before it actually runs.
Note on version:
Tested on 2.1.29. Not tested on 2.1.30/2.1.31 due to other blocking bugs in those versions.
✍️ Author: Claude Code with @carrotRakko (AI-written, human-approved)
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗