[Bug] Private marketplace clone fails with HTTPS authentication error

Resolved 💬 27 comments Opened Dec 12, 2025 by zekus Closed Jan 26, 2026
💡 Likely answer: A maintainer (whyuan-cc, contributor) responded on this thread — see the highlighted reply below.

Bug Description
private marketplaces are no longer working. /pluging marketplace add https://github.com/<ORG>/<repo> fails with Error: Failed to clone marketplace repository: HTTPS authentication failed. You may need to configure credentials, or use an SSH URL for GitHub repositories.

Environment Info

  • Platform: darwin
  • Terminal: ghostty
  • Version: 2.0.67
  • Feedback ID: 67a99628-2df1-473f-9b9b-9d423b760997

Errors

[{"error":"Error: Failed to clone marketplace repository: HTTPS authentication failed. You may need to configure credentials, or use an SSH URL for GitHub repositories.\n\nOriginal error: Cloning into '<redacted>'...\nfatal: could not read Username for 'https://github.com': terminal prompts disabled\n    at K$T (/$bunfs/root/claude:978:151)\n    at async _dR (/$bunfs/root/claude:984:1859)\n    at async aF (/$bunfs/root/claude:986:601)\n    at async <anonymous> (/$bunfs/root/claude:3826:5171)\n    at processTicksAndRejections (native:7:39)","timestamp":"2025-12-12T13:53:45.665Z"},{"error":"Error: Failed to clone marketplace repository: SSH authentication failed. Please ensure your SSH keys are configured for GitHub, or use an HTTPS URL instead.\n\nOriginal error: Cloning into '<redacted>'...\nCould not stat /<redacted>/.ssh: Permission denied\r\nFailed to add the host to the list of known hosts (/<redacted>/.ssh/known_hosts).\r\ngit@github.com: Permission denied (publickey).\r\nfatal: Could not read from remote repository.\n\nPlease make sure you have the correct access rights\nand the repository exists.\n    at K$T (/$bunfs/root/claude:978:151)\n    at async _dR (/$bunfs/root/claude:984:2324)\n    at async aF (/$bunfs/root/claude:986:601)\n    at async <anonymous> (/$bunfs/root/claude:3826:5171)\n    at processTicksAndRejections (native:7:39)","timestamp":"2025-12-12T13:53:46.269Z"},{"error":"Error: Failed to clone marketplace repository: SSH authentication failed. Please ensure your SSH keys are configured for GitHub, or use an HTTPS URL instead.\n\nOriginal error: Cloning into '<redacted>'...\nCould not stat <redacted>/.ssh: Permission denied\r\nFailed to add the host to the list of known hosts (/<redacted>/.ssh/known_hosts).\r\ngit@github.com: Permission denied (publickey).\r\nfatal: Could not read from remote repository.\n\nPlease make sure you have the correct access rights\nand the repository exists.\n    at K$T (/$bunfs/root/claude:978:151)\n    at async _dR (/$bunfs/root/claude:984:2324)\n    at async aF (/$bunfs/root/claude:986:601)\n    at async <anonymous> (/$bunfs/root/claude:3826:5171)\n    at processTicksAndRejections (native:7:39)","timestamp":"2025-12-12T13:53:46.269Z"},{"error":"Error\n    at <anonymous> (/$bunfs/root/claude:46:15227)\n    at <anonymous> (/$bunfs/root/claude:60:10246)\n    at emitError (node:events:43:23)\n    at <anonymous> (/$bunfs/root/claude:59:3466)\n    at emitError (node:events:43:23)\n    at <anonymous> (node:_http_client:248:22)\n    at processTicksAndRejections (native:7:39)\n    at request (/$bunfs/root/claude:62:2147)\n    at processTicksAndRejections (native:7:39)","timestamp":"2025-12-12T13:53:54.291Z"},{"error":"Error: Failed to clone marketplace repository: HTTPS authentication failed. You may need to configure credentials, or use an SSH URL for GitHub repositories.\n\nOriginal error: Cloning into '/<redacted>/.claude/plugins/marketplaces/temp_1765547676330'...\nfatal: could not read Username for 'https://github.com': terminal prompts disabled\n    at K$T (/$bunfs/root/claude:978:151)\n    at async _dR (/$bunfs/root/claude:984:2516)\n    at async aF (/$bunfs/root/claude:986:601)\n    at async <anonymous> (/$bunfs/root/claude:3826:5171)\n    at processTicksAndRejections (native:7:39)","timestamp":"2025-12-12T13:54:36.526Z"}]

View original on GitHub ↗

27 Comments

github-actions[bot] · 7 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/13553
  2. https://github.com/anthropics/claude-code/issues/9719
  3. https://github.com/anthropics/claude-code/issues/9730

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

knksmith57 · 7 months ago

+1, we're now seeing this as well

---

Additional observations from local debugging:

Environment context:

  • ssh -T git@github.com succeeds in the same terminal session
  • git ls-remote git@github.com:[org]/[repo].git succeeds via Claude Code's Bash tool
  • SSH_AUTH_SOCK environment variable is present

Local version history (from debug logs):

| Date | Version | Observation |
|------------|---------|------------------------------------------------------------------|
| 2025-11-18 | 2.0.43 | Private marketplace add succeeded |
| 2025-12-09 | 2.0.62 | Plugin cache refresh from private marketplace succeeded |
| 2025-12-12 | 2.0.67 | SSH fails, HTTPS fallback fails with "terminal prompts disabled" |

Workaround:

Add new private marketplace (manual clone, then register)
git clone git@github.com:org/marketplace.git ~/.claude/plugins/marketplaces/<name>
Update existing marketplace
git -C ~/.claude/plugins/marketplaces/<name> pull
Update installed plugin (works after marketplace is updated)
claude plugin update <plugin>@<marketplace>
If plugin update fails with "not found", reinstall to fix corrupted metadata
claude plugin uninstall <plugin>@<marketplace>
claude plugin install <plugin>@<marketplace>

<details>

Claude Code separates marketplaces from installed plugins:

~/.claude/plugins/
├── marketplaces/<name>/ # git repos containing plugin manifests (registry)
├── cache/<marketplace>/<plugin>/<version>/ # installed plugin files
└── installed_plugins.json # tracks installed versions + metadata

git pull updates the marketplace (the catalog of available plugins and versions), but doesn't touch the installed plugin in the cache. Running claude plugin update afterward:

  1. Reads the updated marketplace manifest
  2. Compares installed version vs available version
  3. Copies new plugin files to cache
  4. Updates installed_plugins.json

Analogous to apt update (refresh index) vs apt upgrade (install updates).

</details>

yeroc · 7 months ago

Also bitten by this. Connecting over https protocol with git credential caching enabled and never had an issue until now. Will try downgrading back to 2.0.62 as it seems like .63 must be where the issue was introduced.

I would say this ticket and #13553 are definitely duplicates though.

kostyay · 7 months ago

Same problem, using git with https protocol.
It suddenly stopped working few days ago.

knksmith57 · 7 months ago

Agreed. Chiming back in to confirm that this is definitively still a problem on 2.0.71.

Also that the opacity here sucks. And that immediately breaking what is probably the most valuable and interesting feature for small teams like mine after pushing everyone to adopt it is a real suckerpunch move.

kostas-petrakis · 7 months ago

Same issue here as well, HTTPS fails within claude while works as a expected from the shell.

 Failed to clone marketplace repository: HTTPS authentication failed. You may need to configure credentials, or use an SSH URL for GitHub │
│  repositories.                                                                                                                           │
│                                                                                                                                          │
│ Original error: Cloning into '/Users/xxxxx/.claude/plugins/marketplaces/temp_1766067124355'...                                         │
│ fatal: could not read Username for 'https://xxxxxx': terminal prompts disabled
jamestelfer · 6 months ago

I used a script to capture the arguments Claude is sending to git when it does the clone:

git -c credential.helper= -c core.sshCommand=ssh -o BatchMode=yes -o StrictHostKeyChecking=accept-new clone --depth 1 https://github.com/org/repo.git /Users/user.name/.claude/plugins/marketplaces/temp_1766105128012

The -c credential.helper= is the smoking gun here. This is clearly wrong, as it disables the use of credential helpers, so private HTTPS marketplaces just won't work.

It can work as SSH it appears, which might be OK _if you are able to use SSH_.

However, the override of the SSH command will be problematic in other environments too.

Overall, these commands are basically broken for many common installation types.

jamestelfer · 6 months ago

Workaround

Create the following script, make it executable, and put it in your path ahead of the main git executable.

Make sure the final line points to your "real" git executable (try which -a git to see an ordered list of what's in your path currently).

[!NOTE] This will affect any usage of Git that disables credential helpers via the command line -- this is a pretty niche action, but if you hit it, you can modify the script to filter to claude.
#!/usr/bin/env bash
set -eu

# Filter arguments - remove -c credential.helper= sequence
filtered_args=()
seen_dash_c=false

for ((i=1; i<=$#; i++)); do
  current_arg="${!i}"

  if [[ "$current_arg" == "-c" ]]; then
    seen_dash_c=true
    continue
  fi

  if [[ "$seen_dash_c" == true ]]; then
    seen_dash_c=false
    if [[ "$current_arg" == "credential.helper=" ]]; then
      continue
    else
      filtered_args+=("-c")
    fi
  fi

  filtered_args+=("$current_arg")
done

# Execute the actual git command with filtered arguments
exec /opt/homebrew/bin/git "${filtered_args[@]}"
mayur-waghela · 6 months ago

any update on this issue ?

lophil · 6 months ago

Is there a reason why this seems to have been ignored? This seems like the most obvious way to share private marketplaces yet its been broken for over a month now. I'm wondering if we're supposed to use a different method to share marketplaces and not use git.

ukayani · 6 months ago

@lophil Maybe there were security implications to letting claude implicitly access the credential helper via git commands? Hard to tell but i agree that there should be some communication at the very least and a solution provided. Seems like they are perfectly fine with public marketplaces and don't care as much about private ones.

lophil · 6 months ago
@lophil Maybe there were security implications to letting claude implicitly access the credential helper via git commands? Hard to tell but i agree that there should be some communication at the very least and a solution provided. Seems like they are perfectly fine with public marketplaces and don't care as much about private ones.

Yep. If there is a better way to share private marketplaces I am all ears but I have not see any communication on this. As of today the official documentation still suggests pointing to a git repo for a marketplace

yeroc · 6 months ago

@lophil it is extremely rare for Anthropic staff to respond on here. I suggest you contact support through the claude.ai interface instead. I did that for one ticket and did get an actual response after several days.

noahzweben · 6 months ago

Hi - thanks for flagging, I'm on the Anthropic team and we'll look into this!

noahzweben · 6 months ago

Hi all - can you please check out https://code.claude.com/docs/en/plugin-marketplaces#private-repositories

Let me know if this addresses your issues. Sorry we didn't publicize this (hopeful) fix here.
In the meantime, I'm going to look into seeing if we can use a user's available credentials so that we don't require this extra step

kbjorklid · 6 months ago

Using access token may be a bit of a nuisance depending on how GitHub corporate setup (length of time-to-live, having to request/wait for approval etc). I think I prefer currently just pulling the repo with cli git and pointing to the local directory for the marketplace installation (I'd hope there'd be an option to do this - I mean the agent can use CLI git for pull, so not sure why this wouldn't be available for marketplace updates). Perhaps I'll do some sort of automation (hook, maybe) or aliasing to get the repo pulled automatically.

Writing this mainly to say that I hope there would be a solution with less friction.

(I did not test the proposed solution, good that there is one, of course)

ukayani · 6 months ago

Yeah, i agree with @kbjorklid , although its good that there is a way to do it, its definitely a much higher friction solution. Asking all users within our org to generate long lived tokens instead of just relying on the existing credential chain they use for cloning other org repos is not ideal.

noahzweben · 6 months ago

Completely agree - I've added to our list to fix and will update here when fully addressed! For now, let's use this: https://code.claude.com/docs/en/plugin-marketplaces#private-repositories and hoping to have a lower-friction solution soon.

gavriil-deshaw · 6 months ago

@noahzweben sorry if I'm missing something, but how would setting GITHUB_TOKEN or GH_TOKEN work? Since CC invokes git without any credential helper, what's expected to consume either of these env vars and make things work?

gavriil-deshaw · 5 months ago

FTR, this is still broken in v2.1.12, even when $GITHUB_TOKEN is set in the environment.

heliusjing · 5 months ago
FTR, this is still broken in v2.1.12, even when $GITHUB_TOKEN is set in the environment.顺便一提,即使在环境变量中设置了 $GITHUB_TOKENv2.1.12 版本仍然存在此问题。

me too

funaiy · 5 months ago
FTR, this is still broken in v2.1.12, even when $GITHUB_TOKEN is set in the environment.

mee to

liudmyla-b · 5 months ago

The only way that works for me is using this pattern: ``https://username:PAT@full_path_to_repo.git``

rafaelkallis · 5 months ago

it worked for me when i add the repo interactively via the claude code terminal app. I simply pasted the SSH config git@github.com:rafaelkallis/my-claude-plugins.git.

ukayani · 5 months ago
it worked for me when i add the repo interactively via the claude code terminal app. I simply pasted the SSH config git@github.com:rafaelkallis/my-claude-plugins.git.

it is known to work for ssh based auth, just not http based

whyuan-cc contributor · 5 months ago

The public release 2.1.19 has a fix for reusing existing credentials for cloning private marketplace. Please reopen the issue and let us know if it does not work.

github-actions[bot] · 5 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.