[BUG] Plan mode state inconsistency when ExitPlanMode is interrupted by user
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?
Bug Description
When a user interrupts an ExitPlanMode tool call (e.g., to correct something mid-approval), plan mode remains active but in an inconsistent state:
System reminders continue enforcing "Plan mode still active — read-only except plan file"
However, Edit/Write tool calls may still succeed, creating contradictory behavior
There is no manual escape hatch (like /exit-plan command) to recover
The stale plan mode constraints persist for the rest of the conversation, degrading output quality
Impact
In our session, this caused degraded output across ~20 turns due to conflicting system instructions.
What Should Happen?
One of:
Interrupted ExitPlanMode should cleanly exit plan mode
OR provide a manual escape command (e.g., /exit-plan)
OR allow the agent to call ExitPlanMode again
Error Messages/Logs
Steps to Reproduce
Enter plan mode via EnterPlanMode
Write a plan, then call ExitPlanMode
User interrupts the ExitPlanMode call (rejects it to provide a correction)
Plan mode is now stuck — system reminders keep enforcing read-only constraints
Subsequent tool calls operate under conflicting instructions
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
v2.1.150
Platform
Other
Operating System
Windows
Terminal/Shell
VS Code integrated terminal
Additional Information
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗