Tool calls rejected with 'user doesn't want to proceed' when user didn't reject
Resolved 💬 3 comments Opened Feb 28, 2026 by tony-saltfinancial Closed Mar 3, 2026
Bug: Tool calls rejected with "user doesn't want to proceed" when user didn't reject
Environment
- Claude Code version: 2.1.62
- OS: Windows 11 Pro 10.0.26200
- Shell: Git Bash
- Model: claude-opus-4-5-20251101
Description
Tool calls are being automatically rejected with the message "The user doesn't want to proceed with this tool use" even though the user did not reject them and saw no approval prompt.
Steps to Reproduce
- Start a new Claude Code session
- Attempt to run a Bash command with a long timeout parameter:
````
Bash(command="python deploy/deploy.py", timeout=300000)
- The tool call is rejected with "The user doesn't want to proceed"
- User sees no prompt to approve/reject - the rejection happens silently
Observed Behavior
- Multiple consecutive Bash calls with
timeout=300000were rejected - User confirmed they were not rejecting ("not IM NOT", "there is nothing on my end")
- No approval prompt was displayed to the user
- Simple commands without timeout parameter worked fine (
echo "test") - After some successful simple commands, the original command worked without timeout parameter
TaskOutputtool call was also rejected under similar circumstancesReadtool on the same output file worked fine
Expected Behavior
- User should see an approval prompt if the command needs approval
- Commands matching the allow list (
Bash(python:*)was configured) should execute without prompting - If rejection occurs, it should be because the user actually clicked reject
Configuration
Settings include:
{
"skipDangerousModePermissionPrompt": true,
"permissions": {
"allow": [
"Bash(python:*)",
...
]
}
}
The command python deploy/deploy.py should match Bash(python:*) and execute without prompting.
Investigation Performed
Ruled out:
- Hookify plugin: No
.claude/hookify.*.local.mdrule files exist - Superpowers plugin: Only has SessionStart hook (context injection), no PreToolUse hooks
- Permission mismatch: Pattern
Bash(python:*)is in allow list and works in later attempts - Statusline script: Only displays git branch and context info
Possible Causes
- Race condition at session start affecting permission evaluation
- Long timeout values (300000ms) triggering unexpected behavior
- Interaction between timeout parameter and permission matching logic
- Internal state corruption causing auto-rejection before prompt is shown
Workaround
- Omit the
timeoutparameter on Bash calls - Run a few simple commands first before attempting longer-running commands
- Use
run_in_backgroundinstead oftimeoutfor long-running commands
Impact
This bug caused significant time waste and user frustration. A production deployment that should have taken 2 minutes took over 20 minutes due to repeated mysterious rejections.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗