A marketplace catalog refresh disables an installed plugin when the catalog's newer version adds a dependency

Status Open
Reported on v2.1.231
Maintainer reply None cached
Activity 0 comments · opened Aug 21, 2026

What happens

An installed plugin appears to be judged against the catalog's current manifest rather than the manifest it was installed with. So refreshing a marketplace can break an install that has not been updated and whose own on-disk manifest is still perfectly satisfiable.

This makes publishing a new version destructive to existing installs, rather than merely offering them an upgrade.

Reproduction

  1. Marketplace catalog has plugin A v1 (no dependencies) and plugin B.
  2. claude plugin install A@my-marketplace — installs and loads cleanly. B is not installed.
  3. Publish v2 of A declaring dependencies: ["B"]. Do not update the plugin.
  4. claude plugin marketplace update my-marketplace
  5. claude plugin list

Result — the still-installed v1 now reports:

❯ A@my-marketplace
  Status: ✘ failed to load
  Error: Dependency "B@my-marketplace" is not installed

The installed v1's own manifest declares no dependencies (verified by reading it out of the install cache), so nothing about the installed artifact is unsatisfiable. Only the catalog moved.

Why this is worse than an upgrade prompt

The user never opted into v2. A catalog refresh is a routine, low-intent action, and it silently disables a working plugin. There is no way for a publisher to add a dependency to a plugin without breaking every existing install at their next refresh — including installs that intend to stay on the old version.

Expected

One of:

  • an installed plugin is judged against the manifest it was installed with, and dependency requirements apply from the version the user actually adopts; or
  • the catalog refresh reports the impending requirement without disabling the working install; or
  • the documentation states that adding a dependency is a breaking change for all existing installs, so publishers can plan for it.

Environment

Claude Code CLI 2.1.231, macOS. Measured on two marketplace source types — a local directory source and a git source served over smart HTTP — with identical behaviour on both. Third-party auto-update is off by default and marketplaces do not appear to auto-refresh at session start, so the break waits for an explicit refresh rather than happening spontaneously.

View original on GitHub ↗