[BUG] External plugins (URL-only, no code) fail to load in desktop app — version resolves to 'unknown', empty cache has no fallback
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?
Installing an external plugin (URL-only, no downloadable code — e.g. linear@claude-plugins-official) via claude plugin install results in version resolving to unknown and an empty cache directory. The CLI loads the plugin correctly, but the Claude Code desktop app does not — it finds the empty unknown directory and fails to load the plugin entirely, with no versioned directory to fall back to.
This is related to #27879 but distinct. That issue has a workaround: delete the unknown directory and the system falls back to the correctly versioned cached directory. For external plugins there is no versioned directory — the install produces only an empty unknown folder with nothing to fall back to. The workaround does not apply.
What Should Happen?
The desktop app should load an external plugin from its marketplace definition (the .mcp.json URL pointer), the same way the CLI does. An empty unknown cache directory should not cause the plugin to be treated as uninstalled. External plugins have no code to cache — the cache directory will always be empty by design.
Error Messages/Logs
claude plugin list output:
linear@claude-plugins-official Version: unknown Scope: user Status: enabled
claude mcp list output:
plugin:linear:linear: https://mcp.linear.app/mcp (HTTP) - ! Needs authentication
installed_plugins.json entry:
"linear@claude-plugins-official": [{ "scope": "user", "installPath": "...linear/unknown", "version": "unknown" }]
Cache directory contents:
~/.claude/plugins/cache/claude-plugins-official/linear/unknown/ — empty
Desktop app new session response when asked to use Linear:
"No Linear connector is installed or available in the MCP registry."
Steps to Reproduce
- Install an external plugin:
claude plugin install linear@claude-plugins-official - Verify CLI sees it:
claude mcp list→ showsplugin:linear:linear: https://mcp.linear.app/mcp (HTTP) - ! Needs authentication - Verify plugin list:
claude plugin list→ shows linear enabled, version: unknown - Check cache:
~/.claude/plugins/cache/claude-plugins-official/linear/unknown/exists but is empty - Fully quit and relaunch Claude Code desktop app
- Open a new session and ask Claude to use a Linear tool
- Desktop app responds: "No Linear connector is installed or available"
Note: CLI works correctly in the same environment. The issue is specific to the desktop app.
Claude Model
None
Is this a regression?
No, this never worked
Last Working Version
_No response_
Claude Code Version
2.1.118 (Claude Code)
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Windows Terminal
Additional Information
OS: Windows 11
Plugin installed: linear@claude-plugins-official (external plugin — URL pointer only, no downloadable code)
The CLI (claude in terminal) correctly sees and connects to the plugin. The Claude Code desktop app does not.
installed_plugins.json shows version unknown and installPath ending in /linear/unknown/. That directory exists but is empty. There is no versioned subdirectory (e.g. /linear/1.0.0/) because external plugins have no versioned releases to download.
The desktop app appears to require non-empty cache content to treat a plugin as loaded. The CLI does not have this requirement and reads the marketplace definition directly.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗