Plugins fail to load in VS Code Dev Containers: marketplace cache uses Windows host path inside Linux container

Resolved 💬 3 comments Opened Jan 30, 2026 by GoodAlex223 Closed Jan 30, 2026

Bug Description

When using Claude Code VS Code extension inside a Dev Container (Remote - Containers), all marketplace plugins fail to load with plugin-not-found errors. The same plugins work correctly in non-Dev Container projects on the same Windows host.

Root Cause

The plugin system stores/resolves the marketplace cache path using the Windows host absolute path (C:\Users\<user>\.claude\plugins\marketplaces\...) even when running inside a Linux Dev Container where the same directory is mounted at /root/.claude/plugins/marketplaces/....

This causes two failures:

  1. The marketplace cache directory exists but is not recognized as a git repository (git metadata contains Windows-format paths)
  2. Re-clone attempts fail because the path C:\Users\<user>\... is invalid on Linux

Environment

  • OS: Windows 11 (host) → Linux Dev Container (target)
  • Claude Code version: 2.1.25 (also reproduced on 2.1.19)
  • VS Code: Remote - Containers extension
  • Container: /root/.claude/ is mounted from host ~/.claude/

Steps to Reproduce

  1. Install Claude Code plugins on Windows (they work fine in native Windows projects)
  2. Open a project in a VS Code Dev Container
  3. Claude Code starts inside the Linux container
  4. All plugins show plugin-not-found

Log Evidence

Plugin system loads installed_plugins.json correctly (Linux path works):

Loaded 7 installed plugins from /root/.claude/plugins/installed_plugins.json
Initialized versioned plugins system with 7 plugins

But marketplace resolution uses Windows path (fails on Linux):

[ERROR] Failed to refresh marketplace claude-plugins-official: Cache directory exists at 
C:\Users\alexm\.claude\plugins\marketplaces\claude-plugins-official but is not a git repository. 
Please remove it manually and try again.

Cache validation also uses Windows path:

[WARN] Cache corrupted or missing for marketplace claude-plugins-official, re-fetching from source: 
Invalid cached directory at C:\Users\alexm\.claude\plugins\marketplaces\claude-plugins-official: 
missing .claude-plugin/marketplace.json

Autoupdate uses mixed Windows/Linux path:

[WARN] Plugin autoupdate: failed to update learning-output-style@claude-plugins-official: 
Plugin source not found at C:\Users\alexm\.claude\plugins\marketplaces\claude-plugins-official/plugins/learning-output-style

Result: 0 plugins enabled despite 7 installed:

Found 0 plugins (0 enabled, 0 disabled)
Plugin loading errors: Plugin learning-output-style not found in marketplace claude-plugins-official, 
Plugin auto-memory not found in marketplace severity1-marketplace, ...

Additional Issues in Dev Container

These are secondary but also present:

  1. MCP servers failERR_MODULE_NOT_FOUND for all npx-based MCP servers (github, context7, memory) due to stale/incomplete npm cache at /root/.npm/_npx/
  2. Missing managed skills directoryENOENT: scandir '/etc/claude-code/.claude/skills'
  3. enabledPlatforms check failsFailed to check enabledPlatforms: TypeError: undefined is not an object (evaluating 'r7.join')

Expected Behavior

The marketplace cache path should be resolved relative to the user's home directory (e.g., ~/.claude/plugins/marketplaces/...) rather than stored as an absolute OS-specific path. This would allow the same ~/.claude directory to work correctly when mounted into a Dev Container.

Workaround

Deleting the marketplace cache inside the container forces a fresh clone with Linux-native paths, but this breaks again when returning to Windows host projects:

rm -rf /root/.claude/plugins/marketplaces/claude-plugins-official

View original on GitHub ↗

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