Adding a plugin to the Default team marketplace always fails: server rejects the "__DEFAULT__" sentinel as not kebab-case

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Adding a plugin to the Default team marketplace is impossible. The request always
fails validation on the marketplaceName field, because the client sends the sentinel
value __DEFAULT__ and the server validates that value against the kebab-case rule
intended for user-created marketplace names. __DEFAULT__ contains underscores and
uppercase letters, so it can never pass.
Response:
{
“error”: {
“message”: “Error”,
“details”: [
{
“error”: “ERROR_BAD_REQUEST”,
“details”: {
“title”: “Bad Request”,
“detail”: “Marketplace name must be kebab-case (lowercase alphanumeric with hyphens)”,
“isRetryable”: false,
“additionalInfo”: {},
“buttons”: ,
“planChoices”:
},
“isExpected”: true
}
]
}
}

Two things worth noting:

  1. The repo side is fine and is not the cause. The payload already contains the
    resolved plugin and the commit SHA, so Cursor successfully cloned
    the private repo, found .cursor-plugin/plugin.json, and enumerated components
    before this call. The plugin name is valid kebab-case. The repo has no
    marketplace.json (single-plugin layout, as the docs prescribe).
  2. Nothing entered in the UI affects the outcome. The rejected value is the
    __DEFAULT__ sentinel, not user input, so no marketplace name I type can make
    this succeed. isRetryable: false is accurate — it fails identically every time.

Steps to Reproduce

  1. Be on a Teams plan with a Default team marketplace (so no additional marketplace
    can be created).
  2. Go to Dashboard → Plugins and select the Default marketplace.
  3. Click “Add to Marketplace” and supply a plugin repo URL
  4. Cursor resolves the repo and lists the discovered plugin correctly.
  5. Confirm adding the plugin.
  6. The request fails with ERROR_BAD_REQUEST and
    “Marketplace name must be kebab-case”, with marketplaceName: "__DEFAULT__"
    in the payload.

Expected Behavior

The plugin is added to the Default marketplace. The server should either exempt the
__DEFAULT__ sentinel from the kebab-case check, resolve it to the real marketplace
before validating, or have the client send the actual marketplace identifier instead
of a sentinel that cannot satisfy its own validator.

Operating System

MacOS

Version Information

IDE 3.9.16

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hi @vbhasin999 Thanks very much for the post.

I reproduced this in a separate Teams workspace and received the same validation error after Cursor had successfully parsed the repository and discovered the plugin.

Your single-plugin layout and plugin name are valid. This isn’t caused by anything in your repository or by a value you can change in the UI. We’ve let the team know and are tracking this internally.

For now, the available workarounds are:

  • If the plugin is MCP-only, add it as a Team MCP server under Dashboard > Integrations & MCP, then select Add to Team Marketplace. This bypasses the affected repository-import path. See Migrate existing Team MCPs.
  • For individual testing, load or symlink the plugin under ~/.cursor/plugins/local/<plugin-name>, then reload Cursor. This is per-user and does not provide centralized team distribution. See Test plugins locally.
  • If the plugin contains rules, skills, hooks, or commands and requires private team-wide distribution, there isn’t a reliable workaround for the Default marketplace on Teams right now.

I’ll update this thread when there’s an update. Thank you again for reporting.