Desktop app ignores permissions.defaultMode: bypassPermissions — session starts in Accept Edits and can't be switched
Summary
On the Claude Desktop app, sessions ignore permissions.defaultMode: "bypassPermissions" from settings and instead start in Accept Edits mode. Attempting to switch the permission mode in-session fails.
Environment
- Entrypoint:
claude-desktop - Claude Desktop: 1.8555.2
- Claude Code: 2.1.149
- Agent SDK: 0.3.149
- OS: Windows 11 Home (10.0.26200)
What happens
defaultMode is set to bypassPermissions in both user and project settings, the desktop "Allow bypass permissions mode" toggle is ON, and there is no managed policy or environment variable overriding it. Despite this, every session starts in Accept Edits.
Trying to switch modes in-session produces:
Permission mode couldn't be changed. You can try again.Bypass Permissions mode isn't enabled. The session started in Accept Edits — enable Bypass Permissions in Settings to use it.
Configuration (verified correct)
| Layer | defaultMode |
|-------|--------------|
| User ~/.claude/settings.json | bypassPermissions |
| Project .claude/settings.json | (hooks only, no mode set) |
| Project .claude/settings.local.json | bypassPermissions |
| Managed/enterprise policy | none exists |
| Environment variables | none forcing a mode |
User ~/.claude/settings.json (relevant portion):
{
"permissions": { "defaultMode": "bypassPermissions" },
"skipDangerousModePermissionPrompt": true
}
Already ruled out
- Managed-settings override — no
managed-settings.jsonexists (checkedC:\ProgramData\ClaudeCode\). - Environment variables — none set that force a permission mode.
- Config typos — settings verified valid and consistent across all layers.
- Restart — restarting the app and rebooting the OS had no effect.
- Toggling "Allow bypass permissions mode" off/on and starting a fresh (non-resumed) chat — no effect.
Expected behavior
A session should start in bypassPermissions when permissions.defaultMode is set to bypassPermissions and the desktop "Allow bypass permissions mode" capability is enabled.
Actual behavior
Session starts in Accept Edits and cannot be switched to Bypass Permissions.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗