Plugin update flow on Claude Code Desktop fails to detect newer versions
Summary
Claude Code Desktop's "Update" button stays greyed out with the tooltip "On latest version" even when the marketplace has published a newer plugin version. All three documented Desktop-accessible update paths fail. The only working refresh requires a terminal, which non-technical users do not have access to.
Environment
- Claude Code Desktop v2.1.121
- macOS Darwin 25.4.0
- Test plugin:
nfrith/als - Marketplace source:
{ "source": "git", "url": "https://github.com/nfrith/als.git" }
Reproduction
- In Desktop, add a marketplace and install a plugin. Note the version in Customize → <plugin>.
- As the plugin author, bump
plugin.jsonversion(e.g.0.1.1→0.1.2), commit, push to the marketplace's default branch. - In Desktop, open Customize → <plugin> and observe the Update button.
Expected
Update button activates. Clicking installs the new version.
Actual
Button stays greyed with tooltip "On latest version". The platform never observes the new version.
Additional Desktop-side paths tested — all fail
| Action | Result |
|---|---|
| Click Update | Greyed; "On latest version" |
| Quit Desktop, reopen | Still on cached version |
| Enable autoUpdate: true on the marketplace via CLI, restart Desktop | Still on cached version |
| Uninstall → close Desktop → reopen → remove marketplace → re-add marketplace → reinstall plugin | Still installs the old version — Desktop's "re-add marketplace" reuses the existing on-disk clone at ~/.claude/plugins/marketplaces/<name>/ rather than fresh-cloning from origin |
Version-strategy permutations tested — all fail
Per the version resolution docs:
versioninplugin.jsononly, pre-release format (0.1.0-beta.28→0.1.0-beta.32) — failsversioninplugin.jsononly, clean semver (0.1.1→0.1.2) — failsversioninmarketplace.jsononly (0.1.0-beta.31→0.1.0-beta.32) — fails- No
versionanywhere (commit-SHA path, withref: stablegit-tag pin moved forward) — fails
In all cases, Desktop reports "On latest version".
Working workaround (terminal only)
claude plugin marketplace update <marketplace-name> from a terminal force-pulls the on-disk marketplace clone, after which an uninstall + reinstall through Desktop's Customize panel installs the new version (because the clone is now fresh).
Impact
Non-technical users on Claude Code Desktop have no working path to receive plugin updates. Plugin authors cannot ship fixes or new features to existing Desktop installs without instructing every user to open a terminal.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗