Plugin marketplace fails to load when manifest contains unknown source formats (url/git-subdir), breaking all plugins in that marketplace

Open 💬 0 comments Opened Jun 10, 2026 by wiinci

Summary

When marketplace.json contains plugin entries that use source formats not recognized by the current CLI version (specifically "url" and "git-subdir"), the CLI rejects the entire manifest with a schema validation error. This causes every plugin in that marketplace to show "failed to load: Plugin X not found in marketplace" — including plugins whose entries use perfectly valid source formats.

Steps to Reproduce

  1. Have Claude Code 2.1.170 (latest as of 2026-06-10) with claude-plugins-official marketplace configured
  2. Run claude plugin marketplace update claude-plugins-official
  3. Observe: all plugins from that marketplace fail to load

Or:

claude plugin marketplace remove claude-plugins-official
claude plugin marketplace add anthropics/claude-plugins-official
✘ Failed to add marketplace: Invalid schema: .../.claude-plugin/marketplace.json
  plugins.0.source: Invalid input
  plugins.1.source: Invalid input
  ... (53 entries with source: "git-subdir" or source: {source: "url", url: "..."})
  plugins.61: Unrecognized key: "displayName"

Root Cause

The anthropics/claude-plugins-official marketplace manifest recently introduced two new source formats:

{ "source": "url", "url": "https://github.com/org/repo.git", "sha": "abc123" }
{ "source": "git-subdir", "url": "...", "path": "plugins/foo", "ref": "v1.0", "sha": "..." }

The CLI's Zod schema validator does not recognize these variants. Because validation is applied to the entire plugins array, a single unrecognized entry causes the whole manifest to fail — even entries with valid string-path sources like "./plugins/code-review".

Impact

  • All plugins from claude-plugins-official show Status: ✘ failed to load even if their own source entry is valid
  • claude plugin discover shows "All available plugins are already installed" (can't read the marketplace)
  • claude plugin marketplace update is permanently broken for the official marketplace on the current CLI version
  • Workaround requires manually patching ~/.claude/plugins/marketplaces/claude-plugins-official/.claude-plugin/marketplace.json to strip unrecognized source formats

Expected Behavior

The CLI should tolerate unknown source format variants with a warn-and-skip approach:

  • Plugins with unrecognized source formats are skipped (logged as warnings, not counted as "installed")
  • Plugins with valid source formats in the same manifest load normally
  • plugin list shows a warning at the top rather than per-plugin errors

Alternatively, maintain backward compatibility in the marketplace schema by not introducing breaking source format changes without a corresponding CLI release that understands them.

Environment

  • Claude Code: 2.1.170 (also reproduced on 2.1.47)
  • OS: macOS Darwin 25.5.0
  • Marketplace: anthropics/claude-plugins-official (GitHub)
  • Affected plugins: all 12+ plugins previously working from this marketplace (slack, notion, atlassian, superpowers, figma, playwright, feature-dev, skill-creator, typescript-lsp, code-review, explanatory-output-style, frontend-design)

View original on GitHub ↗