[BUG] Plugin install rejects skills[] object-form with misleading 'Update Claude Code' error on latest version
Summary
Claude Code 2.1.145 (latest published per npm view @anthropic-ai/claude-code dist-tags) rejects a marketplace plugin entry whose skills[] array uses the object form with explicit slash-command invocation bindings:
"skills": [
{ "name": "generate", "path": "higgsfield-generate", "invoke": "/higgsfield:generate" }
]
with the error:
Failed to install: This plugin uses a source type your Claude Code version does not support. Update Claude Code and try again.
The error is misleading on two axes:
- The CLI is already the latest published version (
2.1.145, bothlatestandnextper npm). There is nothing to update to. - The rejected field is not
source. The plugin'ssource: "./"is valid and works on multiple other marketplaces I have installed (anthropic-agent-skills,ui-ux-pro-max-skill). The actual rejection appears to be theskills[]shape, but the error attributes it to "source type."
This is a different root cause from #56043 (marketplace-name collision producing the same string) and overlaps the docs gap in #53076 (unrecognized source format behavior). The common thread is that this exact error message is emitted as a catch-all for any unrecognized schema field, making it actively misleading for end users and difficult to diagnose without reading other marketplaces' manifests side-by-side.
Environment
claude --version→2.1.145 (Claude Code)(npm global install, Linux x86_64 WSL2)- Node
v24.7.0 npm view @anthropic-ai/claude-code dist-tags→{ stable: '2.1.139', next: '2.1.145', latest: '2.1.145' }- Marketplace source:
github(higgsfield-ai/skills), commit installed via/plugin marketplace add higgsfield-ai/skills
Reproduction
# 1. Add the higgsfield marketplace
/plugin marketplace add higgsfield-ai/skills
# 2. Attempt install
/plugin install higgsfield@higgsfield
Result: install dialog shows "Component summary not available for remote plugin" and then "Failed to install: This plugin uses a source type your Claude Code version does not support. Update Claude Code and try again."
The marketplace.json that produces this is at ~/.claude/plugins/marketplaces/higgsfield/.claude-plugin/marketplace.json:
{
"name": "higgsfield",
"owner": { "name": "Higgsfield AI", "url": "https://higgsfield.ai" },
"plugins": [
{
"name": "higgsfield",
"source": "./",
"description": "Image/video generation, Marketing Studio, ...",
"version": "0.3.0",
"skills": [
{ "name": "generate", "path": "higgsfield-generate", "invoke": "/higgsfield:generate" },
{ "name": "soul-id", "path": "higgsfield-soul-id", "invoke": "/higgsfield:soul-id" },
{ "name": "product-photoshoot", "path": "higgsfield-product-photoshoot", "invoke": "/higgsfield:product-photoshoot" },
{ "name": "marketplace-cards", "path": "higgsfield-marketplace-cards", "invoke": "/higgsfield:marketplace-cards" }
]
}
]
}
Diagnosis
I confirmed empirically that the skills[] shape is the rejected field, not source:
source: "./"— same string source is used byanthropic-agent-skillsandui-ux-pro-max-skillin my installed marketplaces, and both install successfully.skills[]string form — every working marketplace uses string entries like"./skills/xlsx"or"./marketing-skill". None use the object form.- Local patch test: rewriting the higgsfield manifest to use string-form skills (
"./higgsfield-generate", etc.) and clearing the plugin cache allows/plugin install higgsfield@higgsfieldto proceed. Loss: the explicitinvoke: "/higgsfield:generate"slash-command bindings have to be derived from the skill name instead of being declared.
The object form with { name, path, invoke } appears to follow a more recent / planned schema variant that the 2.1.145 parser does not yet accept. The Agent Skills specification at agentskills.io covers SKILL.md frontmatter but does not formally specify the Claude Code marketplace.json skills[] array shape, so it is unclear whether the object form is intended-but-not-yet-shipped or simply non-standard.
Asks
Two independent fixes, in priority order:
- Improve the error message. Whatever the parser rejects, the message should name the specific field path that failed (e.g.
marketplace 'higgsfield' plugin 'higgsfield': skills[0] must be a string, got object) instead of attributing it to "source type" and advising an update that doesn't exist. The "Update Claude Code and try again" suffix should be removed unless the parser has actually determined a version-incompatibility (which is impossible when the user is already on the latest published version). - Either accept the object-form
skills[](withname/path/invokefields, useful for explicit slash-command bindings that don't collide with the directory name) or publish a clear schema reference documenting that only the string form is supported and what the canonical alternative is for explicitinvokemapping.
Related issues
- #56043 — same misleading "source type not supported" error, different trigger (marketplace name collision)
- #53076 — docs gap: unrecognized source format behavior is undocumented
- #15439 — related: plugin source schema currently lacks
ref/pathparameters
Workaround
Patch the local ~/.claude/plugins/marketplaces/<name>/.claude-plugin/marketplace.json to convert skills[] object entries to string entries pointing at the skill directories. Note this is fragile — /plugin marketplace update <name> will git pull and overwrite it.
This issue has 7 comments on GitHub. Read the full discussion on GitHub ↗