Bypass permissions mode spontaneously switches to Plan Mode mid-session

Resolved 💬 4 comments Opened Mar 27, 2026 by briborg Closed Apr 26, 2026

Description

Sessions configured with "defaultMode": "bypassPermissions" spontaneously switch to Plan Mode (approval-required mode) mid-session without any user action. The user has to manually exit Plan Mode and switch back to bypass permissions repeatedly.

Environment

  • Claude Code version: 2.1.85
  • OS: macOS (Darwin 25.3.0)
  • Shell: zsh
  • Plugins installed: compound-engineering (EveryInc), last30days, pagerduty, code-simplifier
  • Skills installed: gstack (multiple skills reference Plan Mode handling)

Configuration

Global ~/.claude/settings.json includes:

{
  "permissions": {
    "defaultMode": "bypassPermissions"
  },
  "skipDangerousModePermissionPrompt": true
}

No project-level settings override defaultMode.

Steps to Reproduce

  1. Start a Claude Code session in bypass permissions mode
  2. Run various commands/requests (exact trigger unknown — happens intermittently)
  3. Session switches to Plan Mode (edit approval required) without the user pressing Shift+Tab or invoking any plan-related command

What Happens

  • The session silently enters Plan Mode
  • All subsequent tool calls require user approval
  • User must manually exit Plan Mode and re-enable bypass permissions
  • Happens repeatedly across different sessions and projects

Investigation Done

  • Confirmed no hooks trigger EnterPlanMode
  • Confirmed no installed skills call EnterPlanMode (they handle being in plan mode but don't enter it)
  • Removed project-level permissions blocks that lacked defaultMode (potential conflict with global bypass)
  • Shift+Tab (plan mode toggle) is not being pressed accidentally
  • Issue persists across multiple projects

Expected Behavior

Bypass permissions mode should remain active for the entire session unless the user explicitly changes it.

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗