[BUG] Connector tool permissions (Always Allow) reset to default after every Claude Desktop upgrade

Resolved 💬 2 comments Opened May 7, 2026 by kimseokho1226 Closed Jun 23, 2026

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?

Every time Claude Desktop auto-updates, the per-tool permission settings for all MCP connectors (set via the Connector UI → individual tool toggles → "Always Allow") are silently reset back to the default "Ask" state.

This forces users to manually re-open every connector, expand every tool, and re-set each tool to "Always Allow" after each update — which is particularly painful for users with many connectors and many tools.

The settings stored in ~/.claude/settings.json (the permissions.allow array) survive upgrades correctly. However, the per-tool permission state stored in the Electron app's IndexedDB (AppData\Roaming\Claude\IndexedDB\...) appears to be wiped or not migrated during upgrades.

What Should Happen?

Per-tool connector permissions set through the UI should persist across upgrades, matching the same persistence guarantee as ~/.claude/settings.json.

Error Messages/Logs

No error is shown. Tools silently revert to "Ask" permission state after upgrade.

Steps to Reproduce

  1. Add a local MCP server via claude_desktop_config.json
  2. Open Claude Desktop → Settings → Connectors → expand the connector → set each tool to "Always Allow"
  3. Allow Claude Desktop to auto-update to a newer version
  4. Re-open Settings → Connectors — all per-tool permissions have reset to "Ask"
  5. Repeat after every subsequent upgrade

Additional Impact: "This tool has been disabled in your connector settings"

A related and more severe regression occurs when the IndexedDB connector state becomes corrupted after repeated delete/re-add cycles (which users are forced to do as a workaround for other bugs). After the corruption, all tools from the affected connector return:

This tool has been disabled in your connector settings.

This error persists even when the UI shows the tools as "Always Allow", and survives:

  • Deleting and re-adding the connector
  • Restoring IndexedDB from backup
  • Using permissions.allow: ["mcp__<server>__*"] in settings.json

Workaround discovered: Renaming the connector key in claude_desktop_config.json to a new name forces creation of a fresh IndexedDB record, bypassing the corrupted state entirely.

Environment

  • Claude Desktop: 2.1.128
  • Claude Code CLI: 2.1.132
  • OS: Windows 11
  • Platform: Windows

Related Issues

  • #39523 — [META] Bypass permissions mode is fundamentally broken (permissions not persisting)
  • #42453 — Custom local MCP server tools disabled in Cowork and Claude Code
  • #35436 — MCP tools blocked by PreToolUse:Callback hook
  • #19731 — MCP Tool Permissions Not Persisting Between Chats

Suggested Fix

Persist per-tool connector permissions in ~/.claude/settings.json (or equivalent user-owned file) rather than solely in Electron's IndexedDB, so they survive upgrades and can be version-controlled or backed up by users.

View original on GitHub ↗

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