[BUG] Tool calls auto-interrupted after manual Escape - abort state persists within session

Resolved 💬 4 comments Opened Feb 5, 2026 by carrotRakko Closed Mar 5, 2026

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:

  1. User presses Escape to interrupt Claude during a task
  2. User sends a new message
  3. Claude attempts to call a tool (e.g., gh issue list)
  4. Tool is immediately interrupted with two "Interrupted" lines
  5. This repeats for multiple tool calls over ~15-20 minutes
  6. 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

  1. Start a Claude Code session
  2. Begin a task that involves tool calls
  3. Press Escape to interrupt Claude mid-task
  4. Send a new message that triggers a tool call (e.g., "run gh issue list")
  5. Observe: Tool is immediately interrupted with two "Interrupted" lines
  6. 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 (/clear injection, 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)

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗