[BUG] Parallel tool-use batches bypass user rejection — denied calls don't cancel siblings in the same block
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)
- [x] I am using the latest version of Claude Code
What's Wrong?
When Claude dispatches multiple tool calls in a single parallel tool-use block, rejecting one call in the permission prompt does not cancel the others. Sibling calls in the same block continue to execute and return their results to the model. Denial only gates calls that have not yet been dispatched — it does not recall calls already in flight within the batch.
Environment: Claude Code [2.1.112], [Debian 6.12.74-2 (2026-03-08) x86_64 GNU/Linux], model: Claude Opus 4.7 (1M context).
What Should Happen?
Expected behavior:
When a parallel tool-use block contains any call that requires user confirmation, no call in the block should begin executing until the user has responded to every prompt for that block. Confirmation must gate dispatch, not run alongside it. If any call in the batch is denied, none of the calls run; only after all required approvals are granted does the batch execute.
Error Messages/Logs
Steps to Reproduce
- Start a Claude Code session in a project where the model is likely to issue a large parallel batch of tool calls (e.g. a CLAUDE.md that instructs the model to read many files on startup).
- Prompt the model in a way that causes it to issue many tool calls in a single parallel block — for example, ask it to read a dozen specific files at once, or trigger a startup directive that does so.
- When the permission prompts begin appearing, reject them as they come in.
- Observe that some of the sibling calls in the same parallel block complete successfully and return their results to the model, despite other calls in the same block being denied.
Observed: Six of thirteen Read calls against files in my home directory completed and returned contents to the model while I was actively rejecting prompts from the same batch.
Expected: No call in the batch should execute until every prompt in the batch has been approved; any denial should cancel the entire batch.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.112 (Claude Code)
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Windows Terminal
Additional Information
_No response_
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗