claude-code - 💡(How to fix) Fix Bash tool blocked (exit 126 "Request interrupted by user") after 2.1.117 auto-writes skipAutoPermissionPrompt + defaultMode:auto [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#51936Fetched 2026-04-23 07:40:56
View on GitHub
Comments
0
Participants
1
Timeline
4
Reactions
1
Author
Participants
Timeline (top)
labeled ×4

After upgrading to 2.1.117 (2026-04-22), all Bash tool invocations fail with exit 126 / "Request interrupted by user for tool use", even for commands in the allow-list and even echo test. Subagents show the same behavior. Regenerating ~/.claude/settings.json from a clean template and restarting Claude Code restores Bash.

Error Message

(b) cleanly fail with a clear error, not a silent

Root Cause

Root cause (suspected)

2.1.117 auto-writes two keys into ~/.claude/settings.json at startup that previous versions (2.1.114, 2.1.112) did not:

  • "defaultMode": "auto" (inside permissions)
  • "skipAutoPermissionPrompt": true (root)

Fix Action

Workaround

Overwrite ~/.claude/settings.json with a version that does not contain skipAutoPermissionPrompt / defaultMode: "auto" and restart Claude Code. (Note: explicitly setting these to false in the template did not help in a prior session — Claude Code rewrites them at startup.)

Code Example

+     "defaultMode": "auto"
+   "skipAutoPermissionPrompt": true
RAW_BUFFERClick to expand / collapse

Environment

  • Claude Code: 2.1.117 (native installer)
  • Platform: Linux 6.6.87.2-microsoft-standard-WSL2
  • Happy wrapper: 1.1.4 (not the cause — reproducible without Happy hooks)

Summary

After upgrading to 2.1.117 (2026-04-22), all Bash tool invocations fail with exit 126 / "Request interrupted by user for tool use", even for commands in the allow-list and even echo test. Subagents show the same behavior. Regenerating ~/.claude/settings.json from a clean template and restarting Claude Code restores Bash.

Root cause (suspected)

2.1.117 auto-writes two keys into ~/.claude/settings.json at startup that previous versions (2.1.114, 2.1.112) did not:

  • "defaultMode": "auto" (inside permissions)
  • "skipAutoPermissionPrompt": true (root)

With both set, permission judgements appear to skip the prompt and auto-interrupt any Bash command that doesn't cleanly match an allow pattern — including multi-line heredoc git commit even though Bash(git commit *) is allowed, and commands like echo that would normally trigger a prompt.

Diff between a working settings.json (4/20, Claude Code 2.1.114) and the broken one (4/22, 2.1.117):

+     "defaultMode": "auto"
+   "skipAutoPermissionPrompt": true

skipDangerousModePermissionPrompt alone (present since ~February) did not cause the issue.

Reproduction

  1. Running 2.1.117.
  2. Allow 2.1.117 to write its auto-keys into ~/.claude/settings.json.
  3. In a session, any Bash call — including echo test — returns exit 126 / "Request interrupted by user for tool use". No prompt is shown.

Workaround

Overwrite ~/.claude/settings.json with a version that does not contain skipAutoPermissionPrompt / defaultMode: "auto" and restart Claude Code. (Note: explicitly setting these to false in the template did not help in a prior session — Claude Code rewrites them at startup.)

Expected behavior

Either (a) prompt the user when a Bash command doesn't match allow/deny, or (b) cleanly fail with a clear error, not a silent Request interrupted by user for tool use.

extent analysis

TL;DR

The most likely fix is to manually edit ~/.claude/settings.json to remove or modify the auto-written keys "defaultMode": "auto" and "skipAutoPermissionPrompt": true to prevent auto-interruption of Bash commands.

Guidance

  • Verify that the issue is resolved by checking if Bash commands execute without interruption after modifying ~/.claude/settings.json.
  • Try setting "skipAutoPermissionPrompt": false instead of removing it, to see if this resolves the issue without fully disabling auto-permission prompting.
  • If the problem persists, attempt to isolate the issue by testing with a minimal ~/.claude/settings.json configuration to rule out other settings causing the problem.
  • Consider regenerating ~/.claude/settings.json from a clean template and then manually editing the necessary settings to ensure a clean starting point.

Example

No code snippet is provided as the issue is related to configuration settings rather than code.

Notes

The provided workaround suggests that explicitly setting "skipAutoPermissionPrompt" to false in the template may not be effective due to Claude Code rewriting these settings at startup. Therefore, manual editing after startup or finding a way to prevent these settings from being auto-written may be necessary.

Recommendation

Apply the workaround by manually editing ~/.claude/settings.json to remove or modify the problematic settings, as this directly addresses the suspected root cause of the issue.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

Either (a) prompt the user when a Bash command doesn't match allow/deny, or (b) cleanly fail with a clear error, not a silent Request interrupted by user for tool use.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING