[BUG] Plugin names starting with "claude-" silently fail to install — misleading "Plugin validation failed" error
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?
Description:
Plugins with names starting with claude- upload successfully but are never activated server-side. The only user-facing error is the generic "Plugin validation failed" — there's no indication the name is the problem.
Making it worse: the create-cowork-plugin skill (Claude itself) generated the name claude-md-health-check without any warning, so the broken name came from the tool that's supposed to help you build plugins.
Steps to reproduce:
Create a plugin with a name starting with claude- (e.g. claude-md-health-check)
Package it as a .plugin file and install via Cowork
Observe "Plugin validation failed"
What Should Happen?
Two fixes needed:
- Surface the reserved prefix as a specific validation error
- Add the reserved prefix rule to the naming docs — and ideally prevent the create-cowork-plugin skill from generating reserved names
Error Messages/Logs
[remoteMarketplaceClient] uploadAccountPlugin ... filename=claude-md-health-check.zip ← succeeds
[PluginsFetcher] fetchAccountScopedRemotePlugins: 4 plugins ← appears in marketplace
[RemotePluginManager] Installed plugin: claude-md-health-check never fires. Stack trace exception appears in log. Renaming the plugin to context-health-check (identical content) installed immediately.
Steps to Reproduce
Steps to reproduce:
Open a Cowork session
Say "create a plugin" to invoke the create-cowork-plugin skill
When prompted for a name, use any name starting with claude- (e.g. claude-my-tool)
Complete the plugin creation flow — the skill will generate and package it without any warning about the name
Open Cowork Settings → Plugins → Install from file
Select the generated .plugin file
Observe "Plugin validation failed"
Check ~/Library/Logs/Claude/main.log — the upload succeeds and the plugin appears in the marketplace, but [RemotePluginManager] Installed plugin: never fires
Rename the plugin (change name in .claude-plugin/plugin.json and the skill directory to anything not starting with claude-, repackage)
Install again — succeeds immediately
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
Claude 1.5354.0 (9a9e3d) 2026-04-29T01:14:34.000Z
Platform
AWS Bedrock
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗