[BUG] Desktop 1.25927.0: cannot add a plugin marketplace from a private GitHub repo — fails, then fails silently
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Adding a plugin marketplace from a private GitHub repo fails in the Claude
desktop app on 1.25927.0. The first few attempts show only "Failed to add
marketplace" with no detail. After that it degrades further: the button does
nothing at all and no error appears anywhere.
At no point does the app request GitHub authorization. A private repo cannot be
read without asking for access, and it never asked — not when the Claude GitHub
App was installed, not when it was absent, and not when it was freshly
reinstalled with this repo explicitly granted.
The same repo, same URL, same private setting worked on the previous desktop
build (1.24012.11).
Why this is worse than it sounds: removing a marketplace is a normal step in
the documented update cycle for a plugin. On this version that step is a one-way
door — remove it and you cannot get it back. It left me with zero plugins on
desktop/Cowork for several hours.
What I ruled out, with evidence:
- URL form — tried both
owner/repoand the fullhttps://github.com/...URL. - Session state — full quit and relaunch; signed out and back in.
- Duplicate registration — the same repo is also registered to Claude Code under
a different marketplace name. I removed that registration entirely so nothing
else claimed the repo. The add still failed. (Two registrations of one repo is
normal: Claude Code names it from marketplace.json, the desktop app names it
after the repo.)
- GitHub App permissions — installed with access to code and this repo selected.
- Stale GitHub App — uninstalled it completely and reinstalled fresh, granting
only this repo. The add still failed.
- The repo itself — reachable,
.claude-plugin/marketplace.jsonis valid JSON,
lists four plugins, each with a present and valid plugin.json.
Possibly the same root cause as #81699. That issue reports the desktop app
cloning private plugin repos with a bundled SSH git client while ignoring theGITHUB_TOKEN from managed settings. If the marketplace-add path does the same —
SSH only, no token, no prompt — it would explain both the missing authorization
prompt and why the add started working the instant the repo became readable
without credentials. I have not verified that mechanism and I am not claiming it
as the cause. Noting it because #81699 fails loudly (SSH_HOST_KEY) on
1.19367.0 while mine fails silently on 1.25927.0 — if they share a code path,
that path has since lost its error reporting.
What Should Happen?
- Adding a marketplace from a private repo should succeed, exactly as it did on
1.24012.11 — or the app should state plainly that private repos are not
supported.
- If authorization is needed, prompt for it. If a token is already available,
use it (see #81699).
- Never fail silently. The later attempts produced no message at all, which
appears to be a regression within this version's own lifetime — the early
attempts at least showed a one-line error.
- Warn before removing a marketplace that re-adding may not succeed, since
removal is what strands the user.
Error Messages/Logs
Attempts 1–3 (approx), desktop UI:
Failed to add marketplace.
No further detail, no error code, no log reference, no authorization prompt.
Attempts 4–6 (approx): no error message of any kind. The action silently did
nothing. This absence of an error is itself the defect I most want fixed.
Steps to Reproduce
- Have a PRIVATE GitHub repo laid out as a plugin marketplace
(.claude-plugin/marketplace.json at the root, valid, listing >=1 plugin).
- On desktop app 1.24012.11, add it as a marketplace and install its plugins.
This works.
- Let the app auto-update to 1.25927.0.
- Remove the marketplace — the normal first step when pushing a plugin update.
- Try to re-add the same repo, by either
owner/repoor the full
https://github.com/owner/repo URL.
Result: "Failed to add marketplace", with no GitHub authorization prompt at any
point. After several attempts, the failure becomes completely silent.
Expected: the marketplace is added, as on the prior version.
Confirming it is the private setting: making the repository PUBLIC and repeating
step 5 succeeded on the first attempt. All four plugins then installed and built.
Setting the repo back to PRIVATE afterwards left the installed copies working —
so the restriction is on the ADD path specifically, not on serving an already
built plugin.
Caveat, stated honestly: I had also reinstalled the Claude GitHub App minutes
before the public flip, so I did not isolate the two variables with a controlled
test. What I can say is that the add failed roughly six times over several hours
while private, and succeeded on the first attempt once public.
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
Claude desktop app 1.24012.11
Claude Code Version
Claude Code CLI 2.1.223 NOTE: the bug is in the Claude DESKTOP APP, build 1.25927.0 (macOS), not in the CLI. The CLI on this same machine reads the same private repo without trouble over SSH, which is what demonstrates the repo and my credentials are good.
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
Related open issues (searched before filing; neither is a duplicate):
- #81699 — desktop app clones private plugin repos over bundled SSH,
ignoring GITHUB_TOKEN. Closest match. Different app version, and it at least
produces an error. Mine is the same family of problem with the error removed.
- #69683 — Cowork marketplace clone fails silently while
installed_plugins.json optimistically records success and the runtime keeps
serving a stale version.
A second, related problem I hit repeatedly and can corroborate for #69683:
after a successful add, uninstalling and reinstalling a plugin does not reliably
rebuild it. I have observed a reinstall return a blob older than the one it
replaced, and I have observed the UI list a new version while the built content
on disk was still the old one. The updatedAt timestamp advancing does not prove
a fresh build — it can just mean a stale blob was re-downloaded. The only signal
I have found that never lies is byte-diffing the built plugin directory against
the repo at HEAD. If the build cache is keyed on a commit the marketplace pointer
has not moved to, that would explain it, and it would also explain why removing
and re-adding the marketplace is the step that forces a real rebuild — which is
precisely why I was removing the marketplace when I hit this bug.
Environment detail:
- Desktop app 1.25927.0, macOS 26.5.2 (25F84)
- Marketplace name on the desktop side differs from the Claude Code side for the
same repo; both were tested.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗