[BUG] Local-scoped plugin fails to load on Windows with `plugin-cache-miss` due to case-sensitive `projectPath` comparison
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?
A local-scoped marketplace plugin that is installed correctly and whose cache exists on disk still fails to load in the VS Code extension on Windows with plugin-cache-miss.
The issue appears when the stored projectPath in installed_plugins.json uses a different drive-letter case than the extension's launch cwd (for example, C: vs c:). The plugin record is never matched because the lookup uses a strict, case-sensitive comparison, so the plugin cache is treated as missing even though it exists and validates successfully.
This makes the plugin's skills, commands, and MCP servers unavailable in the extension, while the CLI still reports the plugin as installed and valid.
What Should Happen?
Local-scope plugin resolution should match the current project against the installed plugin record using a case-insensitive, normalized path comparison on Windows.
A plugin whose cache directory exists and validates should load normally regardless of drive-letter case differences between the stored projectPath and the extension's current working directory.
Error Messages/Logs
[DEBUG] Loaded 1 installed plugins from C:\Users\<user>\.claude\plugins\installed_plugins.json
[DEBUG] Plugin not available for MCP: my-plugin@example-marketplace - error type: plugin-cache-miss
[DEBUG] Plugin loading errors: Plugin "my-plugin" not cached at C:\Users\<user>\.claude\plugins\cache\example-marketplace\my-plugin\4.35.0 — run /plugin to refresh
Steps to Reproduce
- On Windows, install a marketplace plugin at local scope into a project so that
installed_plugins.jsonstoresprojectPathwith an uppercase drive letter such asC:\Users\<user>\repos\my-project. - Launch VS Code so that the extension host starts with a lowercase drive letter in its working directory, such as
c:\Users\<user>\repos\my-project. - Open Claude Code in that workspace.
- Observe that the extension logs
plugin-cache-missand the plugin never loads, even though the plugin is present on disk and the CLI reports it as installed and enabled.
Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version
Last Working Version
2.1.179 confirmed by below comment.
Claude Code Version
2.1.201 (CLI and bundled extension binary)
Platform
AWS Bedrock
Operating System
Windows
Terminal/Shell
Other
Additional Information
related #74612 but with a different scope. Likely the same issue with path normalization
- Extension:
anthropic.claude-code-2.1.201-win32-x64 - Plugin:
my-plugin@example-marketplace - Scope:
local - Plugin version:
4.35.0 - The CLI (
claude plugin list/claude plugin validate) reports the plugin as installed and valid, while the VS Code extension reportsplugin-cache-miss. - Workaround confirmed: editing
installed_plugins.jsonto change theprojectPathdrive letter to match the extension's launch case resolves the issue until the next install/update/enable operation. - The issue reproduces with any local-scoped plugin, not just this one example.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗