claude-code - 💡(How to fix) Fix [BUG] Plugin names starting with "claude-" silently fail to install — misleading "Plugin validation failed" error [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#56246Fetched 2026-05-06 06:33:16
View on GitHub
Comments
1
Participants
2
Timeline
9
Reactions
0
Timeline (top)
labeled ×6cross-referenced ×2commented ×1

Error Message

[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.

Code Example

[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.
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • 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

extent analysis

TL;DR

The issue can be fixed by renaming the plugin to a name that does not start with "claude-" to avoid the reserved prefix conflict.

Guidance

  • Verify that the plugin name is the cause of the issue by renaming it to a name that does not start with "claude-" and checking if the installation succeeds.
  • Check the plugin.json file in the .claude-plugin directory to ensure the name change is reflected in the plugin's metadata.
  • To prevent similar issues in the future, consider updating the create-cowork-plugin skill to warn users about reserved prefixes or prevent the generation of names starting with "claude-".
  • Review the Claude Code documentation to see if the reserved prefix rule is mentioned and consider submitting a pull request to add it if it's not already included.

Example

No code snippet is provided as it's not necessary for this issue, but an example of a renamed plugin.json file could be:

{
  "name": "context-health-check",
  // other metadata...
}

Notes

The root cause of the issue is likely due to a reserved prefix conflict, but the exact implementation details are not provided. The suggested fix is based on the information provided in the issue.

Recommendation

Apply workaround: rename the plugin to a name that does not start with "claude-" to avoid the reserved prefix conflict, as this is a simple and effective solution to the problem.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING