A single failed-to-load declared marketplace prunes enabledPlugins for every other non-official marketplace

Open 💬 0 comments Opened Jul 13, 2026 by dberzan

~/.claude/settings.json's extraKnownMarketplaces can contain a directory-source marketplace whose path no longer exists. When that happens, Claude Code doesn't just report that marketplace's own plugins as "not installed" - on some reconcile passes it also prunes the enabledPlugins entries for every OTHER non-official marketplace declared in the same block, even ones with valid, live github/git sources.

Repro: declare 2+ marketplaces in extraKnownMarketplaces (one github-sourced, one directory-sourced) → let the directory-sourced path stop existing → restart/reconcile → the valid marketplace's plugins lose their enabledPlugins entries too, not just the broken one's.

Expected: a broken marketplace declaration should only affect its own plugins' enabled state.

Related, possibly separate: even after removing the broken declaration, the flags can be re-pruned again on a later restart with no broken marketplace present - suggests either a reconcile-timing bug or an unrelated second cause.

Possibly adjacent to the existing spurious .orphaned_at marker issues (#16453, #12457, #11939, #11509).

View original on GitHub ↗