[BUG] Marketplace validation incorrectly checks $schema field for reserved words

Resolved 💬 2 comments Opened Jan 23, 2026 by trev-gulls Closed Feb 28, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

The marketplace name validation checks all JSON fields for reserved words ("anthropic", "claude", "official") instead of just the name field. This causes a false positive when using the official $schema URL.

Including the official schema reference in marketplace.json:

{
  "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
  "name": "my-legitimate-marketplace",
  ...
}

Triggers the reserved name error even though the marketplace name is valid.

What Should Happen?

Reserved name validation should only check the name field, not other fields like $schema. The official schema URL should be usable without triggering validation errors.

Error Messages/Logs

Error: Invalid schema: name: Marketplace name cannot impersonate official Anthropic/Claude marketplaces. Names containing "official", "anthropic", or "claude" in official-sounding combinations are reserved.

Steps to Reproduce

  1. Create a marketplace.json with the official $schema and a valid non-reserved name:
{
  "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
  "name": "tgulls-plugins-private",
  "description": "Personal plugins",
  "owner": { "name": "tgulls" },
  "plugins": []
}
  1. Push to a git repository
  2. Run /plugin marketplace add <repo-url>
  3. Observe: validation fails with reserved name error
  4. Remove the $schema line and retry
  5. Observe: validation succeeds

Claude Model

Opus

Is this a regression?

I don't know

Claude Code Version

2.1.7

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

iTerm2

Additional Information

Workaround: Omit the $schema field from marketplace.json until this is fixed.

Root cause hypothesis: The validation regex/check is running against the entire JSON content or all field values rather than being scoped to just the name field.

Related issues: This is distinct from #14145 and #18329 which are about the official marketplace using reserved names. This issue is about the validation scope being too broad.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗