Plugin cache not refreshed on update/reinstall when version string unchanged

Resolved 💬 3 comments Opened Mar 10, 2026 by cdmihai Closed Mar 14, 2026

Bug Description

When a marketplace plugin's content changes but its version string stays the same (e.g., 1.0.0), /plugin update and /plugin uninstall + /plugin install fail to refresh the cached plugin files.

Steps to Reproduce

  1. Add a marketplace and install a plugin: /plugin install my-plugin@my-marketplace
  2. Push new content to the marketplace repo without changing the version in plugin.json or marketplace.json
  3. The marketplace clone at ~/.claude/plugins/marketplaces/<marketplace>/ updates correctly (via autoUpdate: true)
  4. Run /plugin update my-plugin@my-marketplace
  5. Observe that ~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/ still has stale files
  6. installed_plugins.json still shows the old lastUpdated timestamp and gitCommitSha

Attempting /plugin uninstall followed by /plugin install also fails — the cache directory remains empty and the metadata is unchanged.

Expected Behavior

  • /plugin update should detect content changes (e.g., by comparing git SHAs) and refresh the cache, even if the version string hasn't changed.
  • /plugin uninstall should fully remove the plugin entry from installed_plugins.json.
  • /plugin install after uninstall should create a fresh cache from the current marketplace state.

Actual Behavior

  • /plugin update is a no-op when the version string is unchanged, ignoring content changes.
  • /plugin uninstall leaves the plugin entry in installed_plugins.json.
  • /plugin install after uninstall doesn't re-cache the plugin files.

Workaround

Manually copy files from the marketplace clone to the cache:

rm -rf ~/.claude/plugins/cache/<marketplace>/<plugin>/<version>
cp -r ~/.claude/plugins/marketplaces/<marketplace>/<plugin> ~/.claude/plugins/cache/<marketplace>/<plugin>/<version>

Environment

  • Claude Code CLI (latest as of 2026-03-10)
  • macOS Darwin 24.6.0

View original on GitHub ↗

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