[BUG] Plugin loader silently fails to load registered plugins after Windows reboot
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
After a Windows reboot, Claude Code's plugin loader silently fails to load plugins that are correctly registered in ~/.claude/plugins/installed_plugins.json. This affects all marketplace plugins, not just a specific one.
Symptoms:
- The
/pluginUI shows an empty "Installed" section despite valid entries ininstalled_plugins.json - All plugin-contributed commands (e.g.,
/claude-hud:setup) disappear - Plugin-contributed MCP servers stop loading
- The
statusLine(which is a separate shell command insettings.json) continues to work — confirming the issue is specifically in the plugin loader, not in file corruption or path resolution - Plugin skills symlinked into
~/.claude/skills/continue to work (loaded independently)
Key observation: installed_plugins.json has valid data with correct installPath, version, and gitCommitSha — the registration is intact. The plugin loader simply doesn't activate them.
What Should Happen?
Plugins registered in installed_plugins.json with valid installPath pointing to existing directories should be loaded on every Claude Code launch, regardless of whether the system was rebooted.
Steps to Reproduce
- Install Claude Code on Windows 11
- Install marketplace plugins (e.g.,
claude-hud,context7,github) - Verify plugins work:
/pluginshows them in "Installed", commands are available - Reboot Windows
- Launch Claude Code
- Run
/plugin→ "Installed" section is empty - Plugin commands are gone
installed_plugins.jsonstill has all correct entries
Investigation Details
Environment:
- OS: Windows 11 Pro 10.0.26200
- Claude Code: 2.1.80
- Shell: Git Bash (bash)
- Runtime: Bun 1.3.7 (in persistent User PATH)
- Node.js: v22.21.1
Files verified post-reboot:
~/.claude/plugins/installed_plugins.json— intact, 16 plugins registered with valid Windows paths~/.claude/settings.json— intact,enabledPluginshas all entries set totrue- Plugin cache directories — all exist with complete contents (
.claude-plugin/plugin.json,commands/,skills/) - Bun binary at hardcoded path — exists and executable
statusLine.command— works correctly when tested manually from a fresh PowerShell process
What does NOT fix it:
- Restarting Claude Code (without reboot) — works fine
- Verifying file permissions — all files readable
- Checking PATH — Bun is in persistent User-level PATH
What DOES fix it:
- Running
/plugin install <plugin-name>after each reboot (re-registers the same plugin) - On v2.1.76+, this works without manual cleanup of the cache directory first
Stale IDE lock files survive reboot:
~/.claude/ide/33311.lock → {"pid":7544,"runningInWindows":true,...}
~/.claude/ide/39724.lock → {"pid":7544,"runningInWindows":true,...}
These reference PIDs that no longer exist after reboot. Could stale lock files interfere with plugin loading?
Related Issues
- #29132 — MCP/plugins/credentials not persisting on Windows (labeled
stale, broader scope) - #31838 — Plugins invisible after alternating CLI/VSCode (same plugin loader failure)
- jarrodwatts/claude-hud#196 — Downstream report with 4 user confirmations
Suggested Investigation Areas
- Stale lock file cleanup: Does the plugin loader check
~/.claude/ide/*.lockfiles and skip loading if it detects "active" sessions from before reboot? - Windows path normalization:
installed_plugins.jsonusesC:\\paths — does the loader compare these correctly against runtime-resolved paths? - Race condition on startup: Is there a timing issue where the plugin loader runs before the filesystem fully resolves all paths after boot?
- enabledPlugins vs installed_plugins.json sync: Does the loader require both files to agree, and could a write ordering issue cause a mismatch?
Claude Model
Opus 4.6
Is this a regression?
Yes, this worked in a previous version
Last Working Version
Approximately v2.1.53 (based on reports from multiple users)
Claude Code Version
2.1.80 (Claude Code)
Platform
Anthropic API
Operating System
Windows 11 Pro
Terminal/Shell
Git Bash
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗