Claude plugin validation failed? Check the package first
Most plugin validation errors are package problems, not Claude problems. The real error messages and the fixes, tested on v2.1.296.
When Claude refuses a plugin with a validation error, the cause is almost always inside the package, not in Claude. These are real errors reproduced on Claude Code v2.1.296 (October 2026) with deliberately broken packages, and the fixes that clear them.
Error 1: the marketplace file is invalid
Failed to parse marketplace file at .../marketplace.json: Invalid schema: owner: Invalid input: expected object, received undefined
A marketplace's .claude-plugin/marketplace.json must include an owner object. A file with only name and plugins fails at the add step, before any plugin is even read. Fix: add an owner block, for example "owner": {"name": "Your Name", "email": "you@example.com"}.
Error 2: the plugin manifest fails validation
Failed to install plugin ... has an invalid manifest file at .../plugin.json. Validation errors: name: Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")
The CLI reads .claude-plugin/plugin.json and validates each field. The name must be kebab-case: lowercase letters, numbers and hyphens. A name like "bad one with spaces!!!" is rejected with the exact field named. Fix: rename to the kebab-case form (bad-one) and re-install. The same mechanism catches other malformed fields, so read the validation lines one at a time; each names its field.
The non-error that surprises people
A plugin directory with NO .claude-plugin/plugin.json at all does not fail. It installs, with the name taken from the marketplace entry and the version shown as "unknown" in claude plugin list. The manifest is optional for a minimal plugin; it becomes necessary when you want a proper version, description or metadata. So "missing manifest" is not why an install fails - look for a present-but-invalid manifest instead.
The check order
- Read the validation lines: every one names a field and the rule it broke.
- Validate the JSON itself (a trailing comma breaks parse before schema checks).
- Marketplace problems appear at
marketplace add; plugin problems appear atinstall. Note which step failed. - Fix the package, then
claude plugin marketplace update <name>and retry - a cached copy keeps the old error alive otherwise. More on stale-cache symptoms in marketplace not found.
Building a plugin and want to start from a valid base? claude plugin init scaffolds one - see create a minimal Claude Code plugin.
Sources
- Plugins reference - Claude Code Docs
- Errors reproduced on Claude Code v2.1.296, October 11, 2026
Read more
Claude Code marketplace not found: how to fix it
A typo'd marketplace name surfaces as a plugin-not-found error. The real error messages and the checks that fix them.
Create a minimal Claude Code plugin (tested)
One command scaffolds a working local plugin. What init creates, how the SKILL.md frontmatter works, and when to package.