[BUG] Claude Desktop: uninstalled extension cannot be reinstalled (install hangs / no-op), state survives app reinstall
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?
Summary
After uninstalling an org Directory extension via the UI, it can no longer be reinstalled — neither from the org Directory nor from a local file. The install either hangs indefinitely on "installing" or does nothing at all. The broken state is persisted and survives a full machine restart and a Claude Desktop app reinstall.
3 extensions that were uninstalled are affected; the other 4 (never uninstalled) keep loading normally.
Environment
- Product: Claude Desktop (Windows), org-managed install with a private org extension Directory
- OS: Windows 11 Pro 10.0.26200
- Bundled Claude Code binary: 2.1.170
- Claude Desktop app version: Claude 1.12603.1 (3df4fd) 2026-06-11T16:57:36.000Z
- Affected extension:
proficredit-playwright-mcp(org Directory,type: node, ~3.7 MB; also reproduced earlier astype: binary, ~34 MB) - Other org extensions installed and working: (4 total)
Diagnostic evidence (collected on the affected machine)
- Download works: each org-Directory attempt produces a complete
%TEMP%\dxt-download-*.mcpb(verified correct size + manifest). - Install stalls after staging, before extraction: each attempt creates
%APPDATA%\Claude\dxt-install-<rand>\package.mcpbthen stops. 5 abandoneddxt-install-*staging dirs accumulated, none completed. No extension dir is ever created underClaude Extensions\, and no entry is added toextensions-installations.json. - Size-independent: a 3.7 MB
type:nodepackage hangs identically to a 34 MBtype:binaryone — so it is not an unpack-size / large-binary issue. - No AV involvement: Windows Defender real-time ON, 0 threat detections for the package or
node.exe. - No process lock: no node/playwright/chrome process holding handles during the hang.
- IndexedDB is written during install:
%APPDATA%\Claude\IndexedDB\https_claude.ai_0.indexeddb.leveldbis touched on each attempt, and contains leftover references to the uninstalled extension's id. - Registration alone is not sufficient to recover: manually restoring the extension directory and a correct
extensions-installations.jsonentry (with a hash matching the org package) does not make Claude Desktop load the extension on restart, while the other 6 extensions (with intact internal state) load fine. This indicates a separate internal "installed" gate (IndexedDB) that the uninstall cleared and that cannot be restored fromextensions-installations.json.
What has been ruled out / already tried (no effect)
- Full Windows machine restart.
- Complete Claude Desktop app reinstall.
- Clearing abandoned
dxt-install-*staging dirs and%TEMP%\dxt-download-*.mcpb. - Removing the leftover extension directory and the
extensions-installations.jsonentry for a clean slate. - Installing a fresh, verified, much smaller
type:nodepackage both from the org Directory and from file.
Likely root cause (hypothesis)
The UI uninstall leaves the extension in an inconsistent/"tombstone" state inside the Claude Desktop IndexedDB store. This stale record blocks subsequent (re)installs of that extension id and is not cleared by app reinstall (which preserves %APPDATA%\Claude).
Impact
- A previously-working org extension is permanently uninstallable on this machine through supported flows.
- Risk for any org distributing
type:binary/large extensions: a single UI uninstall can render an extension unrecoverable without resetting the entire Claude Desktop profile (which forces re-login and re-adding all extensions).
Requested resolution
- A supported way to clear the stale per-extension install state for a given extension id (without wiping the whole profile / all other extensions and login).
- Confirmation of where this state is stored and how uninstall should clean it, so it does not block reinstall.
- Fix so that uninstall fully removes the internal record, and/or reinstall reconciles a stale record instead of hanging/no-op.
Notes
- The extension package itself was independently verified to run correctly (MCP
initialize+browser_navigatesucceed under Node v24), so the package is not the cause. - A detailed internal investigation log is available (build/versioning history and full diagnostics).
What Should Happen?
- Expected: Reinstalling a previously-uninstalled extension succeeds, the same way the original install did.
- Actual: Reinstall is permanently blocked; the failure state persists across machine restart and app reinstall.
Error Messages/Logs
Steps to Reproduce
- Have an org Directory extension installed and working.
- Uninstall it via Settings → Extensions.
- Attempt to reinstall it:
- From the org Directory: the package downloads successfully, is staged, then the install hangs on "installing" forever.
- From file (Install from file, .dxt): selecting the file produces no visible effect at all — no progress, no error, no extension dir, no registration entry.
- Restart the machine and/or reinstall the Claude Desktop app, then retry → identical behavior.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
previous (not sure)
Claude Code Version
2.1.170
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Windows Terminal
Additional Information
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗