ExitPlanMode incorrectly returns false user approval
Resolved 💬 3 comments Opened Aug 3, 2025 by kristianinglis Closed Aug 15, 2025
Bug Description
ExitPlanMode Bug Report
Issue: ExitPlanMode tool returns false approval without user interaction
Behavior:
- Call ExitPlanMode with a plan
- Tool immediately returns "User has approved your plan"
- User never sees or approves the plan
- Assistant remains in plan mode (system reminders confirm this)
Impact: Cannot properly exit plan mode or get user approval for plans
Environment:
- Claude Code CLI
- Custom hooks installed (verified not interfering - only logging tool
usage)
Evidence:
- ExitPlanMode called twice, both times returned false approval
- Hooks logs show tool processed normally
- No hook code modifies tool responses
- Plan mode persists despite "approval" message
Expected: ExitPlanMode should prompt user for approval before returning
Environment Info
- Platform: darwin
- Terminal: Apple_Terminal
- Version: 1.0.67
- Feedback ID:
Errors
[{"error":"Error: Command failed: security find-generic-password -a $USER -w -s \"Claude Code\"\nsecurity: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.\n\n at genericNodeError (node:internal/errors:983:15)\n at wrappedFn (node:internal/errors:537:14)\n at checkExecSyncError (node:child_process:882:11)\n at execSync (node:child_process:954:15)\n at t7 (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:867:5214)\n at file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:776:48453\n at Q (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:674:14418)\n at lJ (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:776:45891)\n at yz (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:776:44758)\n at W9 (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:776:51079)","timestamp":"2025-08-03T10:47:16.374Z"},{"error":"RangeError [ERR_CHILD_PROCESS_STDIO_MAXBUFFER]: stdout maxBuffer length exceeded\n at Socket.onChildStdout (node:child_process:481:14)\n at Socket.emit (node:events:518:28)\n at Socket.emit (node:domain:489:12)\n at addChunk (node:internal/streams/readable:561:12)\n at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)\n at Readable.push (node:internal/streams/readable:392:5)\n at Pipe.onStreamRead (node:internal/stream_base_commons:189:23)","timestamp":"2025-08-03T10:47:18.631Z"},{"error":"Error: Language not supported while highlighting code, falling back to markdown: \n at CX (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:1576:1184)\n at file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:1576:912\n at Array.map (<anonymous>)\n at KX (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:1576:903)\n at tvB (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:2626:7823)\n at KR (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:65:19859)\n at Mb (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:67:42848)\n at Nb (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:67:38369)\n at Bj (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:67:38297)\n at _R (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:67:38151)","timestamp":"2025-08-03T10:47:19.894Z"},{"error":"Error: Language not supported while highlighting code, falling back to markdown: \n at CX (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:1576:1184)\n at file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:1576:912\n at Array.map (<anonymous>)\n at KX (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:1576:903)\n at tvB (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:2626:7823)\n at KR (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:65:19859)\n at Mb (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:67:42848)\n at Nb (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:67:38369)\n at Bj (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:67:38297)\n at _R (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:67:38151)","timestamp":"2025-08-03T10:56:42.906Z"},{"error":"AxiosError: Request failed with status code 403\n at QN (file:///Users/kristian/.npm-global/lib/node_modules/@anthropic-ai/claude-code/cli.js:676:1077)\n at Unzip.i1 (file:///Users/kristian/.
Note: Error logs were truncated.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗