Plugin manager caches stale version string on reinstall from private marketplace

Resolved 💬 3 comments Opened Mar 25, 2026 by HMFink Closed Mar 28, 2026

Summary

When reinstalling a plugin from a private Git-based marketplace, the plugin manager writes the previous version string to installed_plugins.json and the cache directory name, even though the marketplace source files all contain the correct (newer) version.

Steps to Reproduce

  1. Have a private marketplace plugin at version 1.7.0 installed
  2. Bump the plugin to 1.8.0 in both plugin.json and .claude-plugin/marketplace.json
  3. Push to the marketplace repo
  4. Run /plugin update — reports "already at the latest version (1.7.0)"
  5. Run /plugin uninstall + /plugin install — reinstalls but still reports 1.7.0

Observed Behavior

After uninstall → reinstall:

  • installed_plugins.json records "version": "1.7.0" and "installPath": "...\1.7.0"
  • Cache directory is created as ~/.claude/plugins/cache/<marketplace>/<plugin>/1.7.0/
  • But the plugin.json inside that cache directory correctly contains "version": "1.8.0"
  • The gitCommitSha in installed_plugins.json is correct (points to the 1.8.0 bump commit)
  • The marketplace clone at ~/.claude/plugins/marketplaces/<marketplace>/ has the correct 1.8.0 in both plugin.json and marketplace.json

So the git fetch and file copy are working correctly — the version string resolution is the only thing broken.

Expected Behavior

The plugin manager should read the version from plugin.json (or marketplace.json) in the marketplace clone and use that for the cache directory name and installed_plugins.json entry.

Workaround

Manually edit installed_plugins.json to fix the version string and rename the cache directory:

# Fix the cache directory name
mv ~/.claude/plugins/cache/<marketplace>/<plugin>/1.7.0 ~/.claude/plugins/cache/<marketplace>/<plugin>/1.8.0

# Edit installed_plugins.json to update version and installPath

Then /reload-plugins.

Environment

  • Claude Code on Windows 11 Pro (bash shell via Git Bash)
  • Private marketplace via "source": "git" in known_marketplaces.json
  • Plugin: csa-training-content-development@csa-training-plugins (1.7.0 → 1.8.0)

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗