Marketplace load failures (e.g. auth errors) fail silently — registered marketplace with no clone directory produces no user-visible error

Resolved 💬 3 comments Opened Apr 15, 2026 by bassic-nerd Closed Apr 19, 2026

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

  1. Register a marketplace pointing to a private GitHub repo (e.g., /plugin marketplace add myorg/private-plugins) while authenticated.
  2. Use it successfully for some time — plugin commands load, skills register.
  3. Let GitHub auth expire or revoke it (PAT expiry, gh auth logout, SSH key removal).
  4. 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.json still 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)

  1. Surface load failures at session start — a warning banner: ⚠️ Marketplace 'X' failed to load: <reason>. Plugins from this marketplace will be unavailable.
  2. Add a /plugin doctor or /plugin status command that audits each registered marketplace against its installLocation and reports missing/stale/broken clones with actionable fixes.
  3. Distinguish auth errors specifically — when git returns 401/403 or \"authentication required,\" suggest gh auth login or credential check in the error message.
  4. Detect registered-but-missing state — if known_marketplaces.json has an entry but installLocation doesn'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

View original on GitHub ↗

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