Marketplace name 'elisa-gepa' silently rejects every plugin with 'source type not supported'
Summary
A plugin marketplace whose name is elisa-gepa causes /plugin install <plugin>@elisa-gepa to fail in the install dialog with:
Component summary not available for remote plugin Failed to install: This plugin uses a source type your Claude Code version does not support. Update Claude Code and try again.
The plugin sources are perfectly valid relative paths (./plugins/<name>). The error is wrong: the plugins do not use an unsupported source type — the marketplace name itself trips a code path that misclassifies every plugin in it as a "remote plugin" with an unrecognized source.
Renaming the marketplace to literally any other tested string (e.g. elisa-plugins) makes the same files install cleanly.
Environment
claude --version→2.1.126 (Claude Code)(native installer, macOS arm64)- macOS 25.4.0
- Marketplace source type:
directory(local path)
Reproduction
TMP=/tmp/repro-elisa-gepa
mkdir -p "$TMP/.claude-plugin" "$TMP/plugins/p/.claude-plugin" "$TMP/plugins/p/agents"
cat > "$TMP/.claude-plugin/marketplace.json" <<'JSON'
{
"name": "elisa-gepa",
"owner": {"name": "test"},
"plugins": [{"name": "p", "source": "./plugins/p", "description": "test"}]
}
JSON
cat > "$TMP/plugins/p/.claude-plugin/plugin.json" <<'JSON'
{"name": "p", "version": "0.1.0", "description": "test"}
JSON
cat > "$TMP/plugins/p/agents/p.md" <<'MD'
---
name: p
description: test
---
hi
MD
cd "$TMP" && git init -q && git add -A && git -c user.email=t@t -c user.name=t commit -q -m init
Then in Claude Code:
/plugin marketplace add /tmp/repro-elisa-gepa
/plugin install p@elisa-gepa
→ Fails with "source type not supported".
Now change just the marketplace name:
sed -i '' 's/"name": "elisa-gepa"/"name": "elisa-plugins"/' "$TMP/.claude-plugin/marketplace.json"
cd "$TMP" && git add -A && git -c user.email=t@t -c user.name=t commit -q -m rename
/plugin marketplace remove elisa-gepa
/plugin marketplace add /tmp/repro-elisa-gepa
/plugin install p@elisa-plugins
→ Installs cleanly: ✓ Installed p. Run /reload-plugins to apply.
What I ruled out (full bisect)
- ✅ Worktree vs regular git repo (irrelevant — both fail with
elisa-gepa) - ✅ Symlinked vs copied plugin dir (irrelevant)
- ✅ Plugin source format: relative-string
./plugins/pis documented and works forelisa-plugins - ✅ Plugin file contents: minimal frontmatter still fails with
elisa-gepa - ✅ Plugin name
pis not the trigger (works underelisa-plugins) - ✅
gepa-docsis not the trigger (any plugin name fails underelisa-gepa) - ✅ No stale state in
~/.claude/plugins/referencingelisa-gepa - ❌ Marketplace name
elisa-gepais the only variable that flips the result
The elisa-gepa name is not in the documented reserved list (claude-plugins-official, claude-code-marketplace, agent-skills, life-sciences, etc.). It feels like a substring/regex collision on gepa (or maybe eli/elisa) inside a name-validator that, on rejection, falls through to "remote plugin / unsupported source type" instead of returning a meaningful "reserved/blocked name" error.
Expected
Either:
- The marketplace name
elisa-gepaworks, or /plugin marketplace addrejects the marketplace at registration time with a clear "name is blocked because X" message — not a misleading "source type not supported" error at install time.
Actual
Marketplace registers fine, all plugins inside it fail to install with the wrong error.
Possibly related
- #11278 (path resolution bug — different symptom, likely fixed)
- #12457 (local-directory install fails to persist — different symptom)
- #33718 (plugin not appearing — closed as duplicate)
None match this exact symptom of name-dependent rejection.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗