[BUG] Desktop 1.21459.0 (macOS): Extensions page fails with getInstalledExtensionsWithState TypeError: u._parse is not a function whenever any extension is installed

Open 💬 0 comments Opened Jul 15, 2026 by akmad

Environment

  • Claude Desktop 1.21459.0 (auto-updated via Squirrel/ShipIt on 2026-07-15 ~11:45 local; ShipIt log shows "Installation completed successfully")
  • macOS 26.5.2 (Darwin 25.5.0), Apple Silicon (arm64)
  • codesign --verify -v /Applications/Claude.appvalid on disk / satisfies its Designated Requirement

Symptom

Since the 1.21459.0 auto-update, Settings → Extensions either hangs at "Loading extensions..." or shows:

Error loading extensions
Error invoking remote method '$eipc_message$_…_$_claude.settings_$_Extensions_$_getInstalledExtensionsWithState': TypeError: u._parse is not a function

Renderer log (~/Library/Logs/Claude/claude.ai-web.log):

2026-07-15 13:00:25 [error] Uncaught (in promise) Error: Error invoking remote method '$eipc_message$_7e1d0999-1d7f-4b41-a6c4-a0f6f7b779d2_$_claude.settings_$_Extensions_$_getInstalledExtensionsWithState': TypeError: u._parse is not a function

Key repro finding

The page renders fine with zero extensions installed. Installing any extension from the Directory (tested: Filesystem 0.2.3, manifest_version 0.3) immediately reproduces the error — i.e. getInstalledExtensionsWithState throws parsing state that this same build just wrote. Uninstall is impossible at that point because the page no longer renders.

Steps to reproduce

  1. Claude Desktop 1.21459.0 with no extensions installed → Settings → Extensions renders (empty).
  2. Install "Filesystem" from the extension directory. Install completes; MCP server spawns fine (main.log shows Secure MCP Filesystem Server running on stdio).
  3. Reopen Settings → Extensions → "Error loading extensions … TypeError: u._parse is not a function" (or an indefinite "Loading extensions..." spinner).

Ruled out (all tried)

  • Full OS reboot.
  • App bundle corruption — codesign verifies clean.
  • Stale JSON state — cleared Claude Extensions/, Claude Extensions Settings/, extensions-installations.json, extensions-blocklist.json with the app quit.
  • Stale renderer state — cleared IndexedDB/https_claude.ai_0.indexeddb.* (per the state-survival behavior described in #67919).
  • System file-descriptor exhaustion (an unrelated local issue, fixed and verified before these repros; kern.num_files ~10k of 491k during all repro attempts).

The extension backend is healthy throughout — UtilityProcess spawns succeed, MCP servers run, "Extension update check completed" logs normally. Only the settings-page state enumeration path throws.

Notes

  • Custom MCP servers configured in claude_desktop_config.json are unaffected and keep working.
  • Possibly relevant: the 1.21459.0 auto-update installed while the machine was under temporary system-wide ENFILE pressure, but a codesign-clean bundle and the zero-state repro above point at the build itself rather than this machine's state.

View original on GitHub ↗