Marketplace load failures (e.g. auth errors) fail silently — registered marketplace with no clone directory produces no user-visible error
Summary
When a plugin marketplace fails to clone or update (e.g., due to expired GitHub auth on a private repo), Claude Code silently no-ops instead of surfacing an actionable error. The marketplace remains registered in known_marketplaces.json but its install directory is missing, so all commands/skills/agents from plugins in that marketplace silently disappear.
Reproduction
- Register a marketplace pointing to a private GitHub repo (e.g.,
/plugin marketplace add myorg/private-plugins) while authenticated. - Use it successfully for some time — plugin commands load, skills register.
- Let GitHub auth expire or revoke it (PAT expiry,
gh authlogout, SSH key removal). - Start a new Claude Code session.
Expected: A visible error like Failed to load marketplace 'myorg/private-plugins': authentication required. Run 'gh auth login' or check your SSH key.
Actual: No error, no warning. Commands from that marketplace's plugins are simply absent. /help doesn't list them. The only way to diagnose is to manually inspect ~/.claude/plugins/:
known_marketplaces.jsonstill has the entry~/.claude/plugins/marketplaces/<name>/directory is missing~/.claude/plugins/cache/<name>/may still contain stale versions
Impact
- Users experience plugins "suddenly breaking" with no diagnostic signal
- Root cause (auth expiry) is invisible — users blame the plugin, the marketplace, or Claude Code itself
- Common failure mode for private-repo marketplaces since auth tokens expire on a schedule, not tied to any user action
- Diagnosis requires filesystem spelunking that most users won't know to do
Suggested fixes (any of these would help)
- Surface load failures at session start — a warning banner:
⚠️ Marketplace 'X' failed to load: <reason>. Plugins from this marketplace will be unavailable. - Add a
/plugin doctoror/plugin statuscommand that audits each registered marketplace against itsinstallLocationand reports missing/stale/broken clones with actionable fixes. - Distinguish auth errors specifically — when git returns 401/403 or \"authentication required,\" suggest
gh auth loginor credential check in the error message. - Detect registered-but-missing state — if
known_marketplaces.jsonhas an entry butinstallLocationdoesn't exist, warn on session start and offer to re-clone.
Environment
- Claude Code: 2.1.92 (VSCode extension)
- Platform: macOS (Darwin 25.4.0)
- Reproduced with private-repo marketplace
icitadel/todd-toolkit
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗