claude-code - 💡(How to fix) Fix Cowork "Add marketplace" fails on marketplaces referencing private/internal plugin repos [1 pull requests]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Claude Desktop's Cowork marketplace sync fails with a generic "Marketplace sync failed. Check the repository URL and try again." whenever a plugin's source.repo points to a GitHub repository not accessible anonymously (private or internal), even when the marketplace.json itself is in a public repo and structurally valid against the documented schema.

The actual server-side error, surfaced only in ~/Library/Logs/Claude/claude.ai-web.log, is much more specific:

MARKETPLACE_ERROR:REMOTE_SYNC_FAILED [remoteMarketplaceOps] sync did not succeed (status: failed_content):
{
  "plugins": [{
    "name": "<plugin>",
    "error": "Repository not found on github.com. Check the URL and make sure the repository is public."
  }],
  "message": "1 plugins found, 1 failed validation"
}

The [remoteMarketplaceOps] tag indicates this validation runs server-side, from an unauthenticated GitHub session — none of the user's local credentials (ssh-agent, gh auth, GITHUB_TOKEN) are in scope.

Error Message

MARKETPLACE_ERROR:REMOTE_SYNC_FAILED [remoteMarketplaceOps] sync did not succeed (status: failed_content): { "plugins": [{ "name": "<plugin>", "error": "Repository not found on github.com. Check the URL and make sure the repository is public." }], "message": "1 plugins found, 1 failed validation" }

Root Cause

The marketplace docs explicitly support private repos for the CLI install path via GITHUB_TOKEN / gh auth / ssh-agent (see Private repositories). None of those mechanisms are available to Cowork's server-side sync, so orgs distributing internal plugins through a marketplace cannot use the Cowork UI at all — not even to browse the catalog.

This blocks any organization-internal marketplace pattern where:

  • The marketplace repo is public (so it's shareable / discoverable), and
  • The plugin repos referenced inside are private or internal (so the plugin code stays governed by the org).

Today the only options are: (a) make plugin repos public, (b) bundle plugin source into the public marketplace repo via relative paths, or (c) tell users to drop down to the CLI. Each has real downsides.

Fix Action

Fixed

Code Example

MARKETPLACE_ERROR:REMOTE_SYNC_FAILED [remoteMarketplaceOps] sync did not succeed (status: failed_content):
{
  "plugins": [{
    "name": "<plugin>",
    "error": "Repository not found on github.com. Check the URL and make sure the repository is public."
  }],
  "message": "1 plugins found, 1 failed validation"
}
RAW_BUFFERClick to expand / collapse

Summary

Claude Desktop's Cowork marketplace sync fails with a generic "Marketplace sync failed. Check the repository URL and try again." whenever a plugin's source.repo points to a GitHub repository not accessible anonymously (private or internal), even when the marketplace.json itself is in a public repo and structurally valid against the documented schema.

The actual server-side error, surfaced only in ~/Library/Logs/Claude/claude.ai-web.log, is much more specific:

MARKETPLACE_ERROR:REMOTE_SYNC_FAILED [remoteMarketplaceOps] sync did not succeed (status: failed_content):
{
  "plugins": [{
    "name": "<plugin>",
    "error": "Repository not found on github.com. Check the URL and make sure the repository is public."
  }],
  "message": "1 plugins found, 1 failed validation"
}

The [remoteMarketplaceOps] tag indicates this validation runs server-side, from an unauthenticated GitHub session — none of the user's local credentials (ssh-agent, gh auth, GITHUB_TOKEN) are in scope.

Why this matters

The marketplace docs explicitly support private repos for the CLI install path via GITHUB_TOKEN / gh auth / ssh-agent (see Private repositories). None of those mechanisms are available to Cowork's server-side sync, so orgs distributing internal plugins through a marketplace cannot use the Cowork UI at all — not even to browse the catalog.

This blocks any organization-internal marketplace pattern where:

  • The marketplace repo is public (so it's shareable / discoverable), and
  • The plugin repos referenced inside are private or internal (so the plugin code stays governed by the org).

Today the only options are: (a) make plugin repos public, (b) bundle plugin source into the public marketplace repo via relative paths, or (c) tell users to drop down to the CLI. Each has real downsides.

What would help (any one of these)

  1. Surface the actual server-side error in the UI so users know it's a plugin-repo visibility issue, not the marketplace URL they typed. The current "Check the repository URL and try again." sent us in the wrong direction for hours.
  2. Per-user GitHub auth for Cowork's marketplace sync, similar to how the CLI uses local credential helpers but mediated through Cowork's own GitHub integration (presumably already needed for the `github` plugin / MCP).
  3. Org-level managed marketplace credentials — a GitHub App that an org admin installs once, granting Cowork's backend read access to specific private/internal repos. This mirrors how the `extraKnownMarketplaces` managed-settings story already works for marketplace discovery; it would extend that to auth.
  4. At minimum, document the limitation in plugin-marketplaces and discover-plugins. The existing "Private repositories" section reads as universal but is silently scoped to the CLI.

Reproduction

  1. Create a public marketplace repo whose `.claude-plugin/marketplace.json` references at least one plugin whose `source.repo` is a private or internal GitHub repo.
  2. In Claude Desktop (Cowork) → Directory → Plugins → Personal → Add marketplace.
  3. Enter the marketplace's `owner/repo`.
  4. Click Sync → "Marketplace sync failed. Check the repository URL and try again."

The same marketplace adds and installs successfully via Claude Code CLI when the user has SSH set up.

Environment

  • Claude Desktop (macOS), Cowork
  • Example marketplace: a public org marketplace repo referencing a single internal-visibility plugin repo on the same GitHub org

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix Cowork "Add marketplace" fails on marketplaces referencing private/internal plugin repos [1 pull requests]