claude plugin install fails with empty "Failed to clone repository:" error on Ubuntu server — git never spawned; same install works on macOS

Open 💬 0 comments Opened Jul 8, 2026 by burakyilmazcl

Summary

On a fresh Ubuntu 26.04 VPS, every marketplace plugin whose source requires
cloning (url and git-subdir types) fails with an empty error message:

Installing plugin "airtable@claude-plugins-official"...✘ Failed to install
plugin "airtable@claude-plugins-official": Failed to clone repository for
git-subdir source:

The error text after the colon is always empty, so there is nothing to act on.

Environment

  • Server: Ubuntu 26.04 LTS (Hetzner VPS, x86_64), Node v22.23.1, git 2.53.0
  • Claude Code 2.1.202 (also reproduced on 2.1.177 on the same machine)
  • Installed via npm to a user-local prefix (~/.npm-global), subscription auth
  • Shell context: ssh → sudo to an unprivileged user (non-login), no TTY
  • Unrestricted outbound network (verified below)

Repro

claude plugin install superpowers@claude-plugins-official # url source → fails
claude plugin install airtable@claude-plugins-official # git-subdir source → fails
claude plugin install agent-sdk-dev@claude-plugins-official # local-path source → works

Evidence collected

  1. Manual clones of the exact same repos succeed as the same user on the same box:

git clone https://github.com/obra/superpowers.git → OK (pinned sha present)
git clone https://github.com/Airtable/skills.git → OK

  1. Same plugin (airtable) installs fine on macOS with Claude Code 2.1.177,

same account.

  1. Not a version regression: downgraded server to 2.1.177 → same failure.
  2. strace -f -e trace=execve claude plugin install airtable@... shows **no

git execve at all** — the failure occurs before/without spawning git,
which suggests an internal fetch/clone layer whose real error is swallowed.

  1. Presence/absence of ~/.claude/plugins/cache makes no difference.
  2. Marketplace itself was fetched successfully (GCS snapshot present,

known_marketplaces.json correct).

Expected

Either the install succeeds, or the underlying error (network/auth/path) is
surfaced after "Failed to clone repository:".

Workaround

Copying the plugin directory from a working macOS install into
~/.claude/plugins/cache/... and registering it manually in
installed_plugins.json works fine.

View original on GitHub ↗