remoteMarketplaceClient rejects all third-party plugin sources: 'External plugin sources are not yet supported'

Resolved 💬 6 comments Opened Mar 31, 2026 by indranilbanerjee Closed May 31, 2026

Bug Description

The remoteMarketplaceClient backend (enabled by the claudeai_cowork_backend_marketplaces feature gate) rejects all third-party marketplace plugin sources with:

"External plugin sources are not yet supported."

This affects source: "url", source: "github", relative paths ("./plugin-name"), and git subtrees — every documented source type fails for non-Anthropic marketplaces.

Steps to Reproduce

  1. Add a personal marketplace in Claude Code Desktop: indranilbanerjee/neels-plugins
  2. The marketplace.json uses source: "url" format — identical to obra/superpowers-marketplace (772 stars) and 60 of 123 plugins in claude-plugins-official
  3. Marketplace sync fails immediately

Error Logs

From claude.ai-web.log:

MARKETPLACE_ERROR:REMOTE_SYNC_FAILED [remoteMarketplaceOps] refresh sync did not succeed (status: failed_content):
{"plugins": [
  {"name": "digital-marketing-pro", "error": "External plugin sources are not yet supported."},
  {"name": "contentforge", "error": "External plugin sources are not yet supported."},
  {"name": "socialforge", "error": "External plugin sources are not yet supported."}
], "message": "0 plugins found, 3 failed validation"}

From main.log:

[remoteMarketplaceClient] pollSyncUntilDone settled with status=failed_content after ~400ms

When switching to relative paths with embedded code (git subtree), the error changes to:

"No files found at source path 'digital-marketing-pro'"

Marketplace Format

The marketplace.json matches the superpowers-marketplace format exactly:

{
  "name": "neels-plugins",
  "owner": { "name": "Indranil Banerjee" },
  "metadata": { "description": "Marketing plugins", "version": "2.1.0" },
  "plugins": [
    {
      "name": "digital-marketing-pro",
      "source": { "source": "url", "url": "https://github.com/indranilbanerjee/digital-marketing-pro.git" },
      "version": "2.7.0",
      "strict": true
    }
  ]
}

Key Observations

  1. NativeMarketplaceReader (local) works fine: Found 2 marketplace(s), lists plugins, shows updates
  2. remoteMarketplaceClient (server) fails: Every sync attempt returns failed_content in ~400ms
  3. Feature gate: claudeai_cowork_backend_marketplaces=true routes through the remote backend
  4. Before the remote backend migration, the marketplace worked via NativeMarketplaceReader — logs from March 30 show: Update available for digital-marketing-pro@neels-plugins: 2.5.0 → 2.5.1
  5. The UI error blocks plugin browsing even though the local reader succeeded

Formats Tested (all fail)

| Format | Error |
|--------|-------|
| source: "url" with HTTPS | "External plugin sources are not yet supported" |
| source: "url" with SHA pins | "External plugin sources are not yet supported" |
| Relative paths + git submodules | "No files found at source path" (server doesn't clone recursively) |
| Relative paths + git subtree (code embedded) | "No files found at source path" |

Expected Behavior

Third-party marketplaces using source: "url" should sync successfully, since this is the format used by:

  • 60 of 123 plugins in claude-plugins-official
  • obra/superpowers-marketplace (most popular third-party marketplace)
  • The official documentation at code.claude.com/docs/en/plugin-marketplaces

Environment

  • Claude Code Desktop v1.1.9669.0 (Windows 11)
  • Feature gate: claudeai_cowork_backend_marketplaces=true
  • Account: Max plan

View original on GitHub ↗

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