Bash tool blocked (exit 126 "Request interrupted by user") after 2.1.117 auto-writes skipAutoPermissionPrompt + defaultMode:auto
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 withexit 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"(insidepermissions)"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
- Running 2.1.117.
- Allow 2.1.117 to write its auto-keys into
~/.claude/settings.json. - 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 containskipAutoPermissionPrompt / 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 silentRequest interrupted by user for tool use.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗