[BUG] Claude Desktop: uninstalled extension cannot be reinstalled (install hangs / no-op), state survives app reinstall

Resolved 💬 6 comments Opened Jun 12, 2026 by ivratchanski Closed Jun 15, 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?

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 as type: 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.mcpb then stops. 5 abandoned dxt-install-* staging dirs accumulated, none completed. No extension dir is ever created under Claude Extensions\, and no entry is added to extensions-installations.json.
  • Size-independent: a 3.7 MB type:node package hangs identically to a 34 MB type:binary one — 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.leveldb is 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.json entry (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 from extensions-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.json entry for a clean slate.
  • Installing a fresh, verified, much smaller type:node package 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

  1. 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).
  2. Confirmation of where this state is stored and how uninstall should clean it, so it does not block reinstall.
  3. 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_navigate succeed 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

  1. Have an org Directory extension installed and working.
  2. Uninstall it via Settings → Extensions.
  3. 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.
  1. 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

INSTALL-TROUBLESHOOTING.md

View original on GitHub ↗

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