Summary
In the Claude desktop app, a git-backed plugin marketplace gets stuck on an old "Synced commit" and never advances. Clicking Check for updates shows the toast "Failed to update marketplace." The installed plugin's Update button stays greyed (the cached catalog version equals the installed version, so the app believes it's current). The only thing that recovers it is removing and re-adding the marketplace, and the failure recurs on every new release.
This is the desktop equivalent of a set of CLI issues that were closed as fixed — the fix evidently did not reach the desktop "remote marketplace" sync path:
(Distinct from the open #66750, which is about never-launched users / official-marketplace auto-seed.)
Environment
- Claude desktop app build 1.15962.1
- macOS (Darwin 25.2.0)
- Marketplace registered under Personal → Local uploads, with "Sync automatically" ON
- App has migrated to remote marketplaces (
remote_marketplace_migration_done_v1 is set in the app config)
Steps to reproduce
- In the desktop app, add a git-backed marketplace (a public GitHub repo with
.claude-plugin/marketplace.json at the repo root) and install its plugin.
- Push new commits/releases to that repo that bump the plugin
version (in plugin.json and the marketplace entry).
- Open the marketplace's ··· menu. It shows Synced commit:
<old sha>, Sync automatically (on), Check for updates, Remove.
- Click Check for updates → toast "Failed to update marketplace." The synced commit does not advance; the plugin's Update button stays greyed.
- Remove the marketplace and re-add it from the same source → it syncs to the latest commit and the new plugin version appears.
- On the next release, the marketplace freezes again at the just-synced commit, and step 4 repeats.
Concrete observed case
- Marketplace "PRISM", public repo
Ronkupper/PRISM.
- The ··· menu showed Synced commit:
8a622a0 (plugin version 2.14.0, ~8 days old) while the repo's main was at a commit publishing plugin version 2.20.1.
8a622a0 is a clean ancestor of current HEAD (17 commits behind, a trivial fast-forward — no force-push, no history rewrite, repo is ~8 MB, marketplace.json valid on the default branch). The pinned commit is fully reachable; the client simply never advances the pin.
- The card's displayed Version and "Last updated" exactly mirror the stuck synced commit.
Expected
Check for updates (and "Sync automatically") should git fetch the marketplace source and fast-forward to the latest commit — the same thing a fresh remove + re-add does — then surface the newer plugin version for update.
Actual
The refresh fails ("Failed to update marketplace"), the synced commit stays frozen, and the Update button stays greyed. Remove + re-add is the only workaround, and it must be repeated on every release.
Impact
For any custom/git-backed marketplace, end users must remove and re-add the marketplace on every plugin release to receive updates. Automatic updates are effectively broken on the desktop app for these marketplaces — even though the CLI variants of this bug are marked fixed.
Summary
In the Claude desktop app, a git-backed plugin marketplace gets stuck on an old "Synced commit" and never advances. Clicking Check for updates shows the toast "Failed to update marketplace." The installed plugin's Update button stays greyed (the cached catalog version equals the installed version, so the app believes it's current). The only thing that recovers it is removing and re-adding the marketplace, and the failure recurs on every new release.
This is the desktop equivalent of a set of CLI issues that were closed as fixed — the fix evidently did not reach the desktop "remote marketplace" sync path:
(Distinct from the open #66750, which is about never-launched users / official-marketplace auto-seed.)
Environment
remote_marketplace_migration_done_v1is set in the app config)Steps to reproduce
.claude-plugin/marketplace.jsonat the repo root) and install its plugin.version(inplugin.jsonand the marketplace entry).<old sha>, Sync automatically (on), Check for updates, Remove.Concrete observed case
Ronkupper/PRISM.8a622a0(plugin version 2.14.0, ~8 days old) while the repo'smainwas at a commit publishing plugin version 2.20.1.8a622a0is a clean ancestor of currentHEAD(17 commits behind, a trivial fast-forward — no force-push, no history rewrite, repo is ~8 MB,marketplace.jsonvalid on the default branch). The pinned commit is fully reachable; the client simply never advances the pin.Expected
Check for updates (and "Sync automatically") should
git fetchthe marketplace source and fast-forward to the latest commit — the same thing a fresh remove + re-add does — then surface the newer plugin version for update.Actual
The refresh fails ("Failed to update marketplace"), the synced commit stays frozen, and the Update button stays greyed. Remove + re-add is the only workaround, and it must be repeated on every release.
Impact
For any custom/git-backed marketplace, end users must remove and re-add the marketplace on every plugin release to receive updates. Automatic updates are effectively broken on the desktop app for these marketplaces — even though the CLI variants of this bug are marked fixed.