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:
- 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). - 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: falseis accurate — it fails identically every time.
Steps to Reproduce
- Be on a Teams plan with a Default team marketplace (so no additional marketplace
can be created). - Go to Dashboard → Plugins and select the Default marketplace.
- Click “Add to Marketplace” and supply a plugin repo URL
- Cursor resolves the repo and lists the discovered plugin correctly.
- Confirm adding the plugin.
- The request fails with ERROR_BAD_REQUEST and
“Marketplace name must be kebab-case”, withmarketplaceName: "__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