claude-code - 💡(How to fix) Fix [BUG] marketplace add silently overwrites existing marketplace when two repos declare the same marketplace name

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…

Error Message

No error is shown during the overwrite. The damage only appears later:

$ claude plugin list

session-logger@dazzle-claude-plugins Version: 0.1.5 Status: X failed to load Error: Plugin session-logger not found in marketplace dazzle-claude-plugins

The marketplace name still exists, but it now points to the second repo which doesn't contain the first plugin.

Root Cause

This is the natural and expected setup for organizations publishing multiple plugins under one brand -- both repos declare the same marketplace name because they belong to the same organization. There is nothing in the docs or CLI output warning that this will destroy the first registration.

Code Example

No error is shown during the overwrite. The damage only appears later:


$ claude plugin list

  > session-logger@dazzle-claude-plugins
    Version: 0.1.5
    Status: X failed to load
    Error: Plugin session-logger not found in marketplace dazzle-claude-plugins


The marketplace name still exists, but it now points to the second repo which doesn't contain the first plugin.

---

{ "name": "org-plugins", "plugins": [{ "name": "plugin-a", "source": "./" }] }

---

{ "name": "org-plugins", "plugins": [{ "name": "plugin-b", "source": "./" }] }

---

claude plugin marketplace add "org/plugin-a"
   claude plugin install plugin-a@org-plugins        # Works

---

claude plugin marketplace add "org/plugin-b"      # No warning -- silently overwrites

---

claude plugin list
   # plugin-a@org-plugins: FAILED TO LOAD
   # plugin-b@org-plugins: enabled
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

When two repos from the same organization declare the same "name" in their .claude-plugin/marketplace.json, running claude plugin marketplace add for the second repo silently overwrites the first repo's registration in known_marketplaces.json. No warning is shown. The first repo's plugins silently break.

This is the natural and expected setup for organizations publishing multiple plugins under one brand -- both repos declare the same marketplace name because they belong to the same organization. There is nothing in the docs or CLI output warning that this will destroy the first registration.

Real-world impact: We publish two plugins under one organization:

  • session-logger in repo DazzleML/claude-session-logger
  • claude-session-backup in repo DazzleML/Claude-Session-Backup

Both declared "name": "dazzle-claude-plugins" in their marketplace.json. Adding the second repo silently overwrote the first. The session-logger plugin was broken for a week before we noticed. It only surfaced when we ran claude plugin list and saw Status: failed to load.

What Should Happen?

At minimum: marketplace add should warn the user when it's about to overwrite an existing marketplace registration from a different source.

Ideally: multiple repos should be able to contribute plugins to the same marketplace namespace. When an organization has repos org/plugin-a and org/plugin-b, both declaring "name": "org-plugins", a user should be able to add both and install plugin-a@org-plugins and plugin-b@org-plugins without collision.

Error Messages/Logs

No error is shown during the overwrite. The damage only appears later:


$ claude plugin list

  > session-logger@dazzle-claude-plugins
    Version: 0.1.5
    Status: X failed to load
    Error: Plugin session-logger not found in marketplace dazzle-claude-plugins


The marketplace name still exists, but it now points to the second repo which doesn't contain the first plugin.

Steps to Reproduce

  1. Create two repos, each with .claude-plugin/marketplace.json declaring the same "name":

    Repo A (org/plugin-a):

    { "name": "org-plugins", "plugins": [{ "name": "plugin-a", "source": "./" }] }

    Repo B (org/plugin-b):

    { "name": "org-plugins", "plugins": [{ "name": "plugin-b", "source": "./" }] }
  2. Add repo A and install plugin-a:

    claude plugin marketplace add "org/plugin-a"
    claude plugin install plugin-a@org-plugins        # Works
  3. Add repo B:

    claude plugin marketplace add "org/plugin-b"      # No warning -- silently overwrites
  4. Check plugin status:

    claude plugin list
    # plugin-a@org-plugins: FAILED TO LOAD
    # plugin-b@org-plugins: enabled
  5. Observe: No warning was shown at step 3. The user had no way to know that adding repo B would break plugin-a.

Claude Model

Not sure / Multiple models

Is this a regression?

I don't know

Last Working Version

No response

Claude Code Version

2.1.146 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

This is copied verbatim from #44042 because the bot closed the issue before it was ever even looked at, as seems to happen often...

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 [BUG] marketplace add silently overwrites existing marketplace when two repos declare the same marketplace name