[BUG] /reload-plugins doesn't re-resolve plugin version from remote — serves stale cache

Resolved 💬 4 comments Opened Mar 7, 2026 by lukaemon Closed Mar 10, 2026

Preflight Checklist

  • [x] I have searched existing issues and found related but distinct reports (#17361, #29074, #29512)
  • [x] This is a single bug report
  • [x] I am using the latest version of Claude Code

What's Wrong?

/reload-plugins re-reads plugin files from the cached path in installed_plugins.json but never re-resolves the version/commit from the remote repository. When a plugin's remote main branch advances (even after git push --force), the new commit gets fetched into ~/.claude/plugins/cache/<repo>/<plugin>/<new-hash>/ but installed_plugins.json still points at the old hash. The plugin continues to serve stale content.

The only workaround is to either:

  1. Manually edit installed_plugins.json to update installPath, version, and gitCommitSha
  2. Uninstall and reinstall the plugin

What Should Happen?

/reload-plugins (or at minimum /plugin update) should:

  1. Check the remote for the latest commit on the configured branch
  2. Update installed_plugins.json with the new hash
  3. Serve content from the new cache directory

Steps to Reproduce

  1. Install a plugin from a GitHub repo: /plugin install repo/plugins/my-plugin
  2. Push a new commit to the plugin's repo (e.g., edit a SKILL.md)
  3. Run /reload-plugins
  4. Invoke a skill from the plugin — observe it still serves the old version
  5. Check ~/.claude/plugins/cache/ — both old and new hash directories exist
  6. Check installed_plugins.json — still points at the old hash

Claude Model

Opus

Is this a regression?

I don't know

Claude Code Version

2.1.63

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

iTerm2 / zsh

Additional Information

installed_plugins.json structure for reference:

{
  "installPath": "...cache/repo/plugin/<OLD_HASH>",
  "version": "<OLD_HASH>",
  "gitCommitSha": "<OLD_FULL_SHA>"
}

The new hash directory exists in cache but is never referenced. Related issues: #17361, #29074, #26744, #29512 — all variations of the same underlying problem: the plugin version pointer is write-once at install time and never updated.

View original on GitHub ↗

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