Team Marketplace Refresh failing since Mar 7 — worked fine until Mar 6 (public repo, no GitHub app connected)

Hi,

I’ve been running a Team Marketplace on a public GitHub repository since before the 2.6 release, without connecting a GitHub app. Everything worked fine — I could push new commits to the repo and hit Refresh in the dashboard to update the plugin.

Starting March 7, the manual Refresh now fails every time with the following error:

“If the problem persists, please check your internet connection or VPN, or email us at [email protected]

This is not a network issue — all other Cursor features work normally and I am not using a VPN.

This is not a Cursor IDE bug. The issue occurs on the /dashboard web interface, specifically the Team Marketplace Refresh button under Settings → Plugins.

  • Operating System: N/A

  • Version Information: N/A

Environment

Timeline

  • Before Mar 3 (2.6 release): Team Marketplace registered and working
  • Up to Mar 6: Push new commit → click Refresh in dashboard → plugin updates successfully
  • Mar 7 onwards: Same flow → Refresh fails with the error above

What I’ve tried

  • Confirmed repo is still public and accessible
  • Confirmed no changes to repo structure between the last successful refresh (Mar 6) and first failure (Mar 7)

Since this broke between Mar 6 and Mar 7 without any changes on my end, I suspect something changed server-side. Could you check if there was any backend change that would affect Refresh for public repos without a GitHub app connected?

Thanks

1 Like

Hi there!

We detected that this may be a bug report, so we’ve moved your post to the Bug Reports category.

To help us investigate and fix this faster, could you edit your original post to include the details from the template below?

Bug Report Template - Click to expand

Where does the bug appear (feature/product)?

  • Cursor IDE
  • Cursor CLI
  • Background Agent (GitHub, Slack, Web, Linear)
  • BugBot
  • Somewhere else…

Describe the Bug
A clear and concise description of what the bug is.


Steps to Reproduce
How can you reproduce this bug? We have a much better chance at fixing issues if we can reproduce them!


Expected Behavior
What is meant to happen here that isn’t working correctly?


Screenshots / Screen Recordings
If applicable, attach images or videos (.jpg, .png, .gif, .mp4, .mov)


Operating System

  • Windows 10/11
  • MacOS
  • Linux

Version Information

  • For Cursor IDE: Menu → About Cursor → Copy
  • For Cursor CLI: Run agent about in your terminal
IDE:
Version: 2.xx.x
VSCode Version: 1.105.1
Commit: ......

CLI:
CLI Version 2026.01.17-d239e66

For AI issues: which model did you use?
Model name (e.g., Sonnet 4, Tab…)


For AI issues: add Request ID with privacy disabled
Request ID: f9a7046a-279b-47e5-ab48-6e8dc12daba1
For Background Agent issues, also post the ID: bc-…


Additional Information
Add any other context about the problem here.


Does this stop you from using Cursor?

  • Yes - Cursor is unusable
  • Sometimes - I can sometimes use Cursor
  • No - Cursor works, but with this issue

The more details you provide, the easier it is for us to reproduce and fix the issue. Thanks!

not ide bug

Hey,
Thanks, the timeline helps a lot.

This could be a server-side regression. Team Marketplace Refresh for public repos without the GitHub App should work, and the fact that it worked up through Mar 6 points to a backend change around then. I’ve flagged it for the team to investigate what changed.

In the meantime, the most reliable workaround is to connect the Cursor GitHub App to your org (Dashboard → Settings → GitHub). That gives Marketplace refresh a more stable auth path.

On the security concern: the Marketplace flow is read-only (it downloads archives / indexes plugins). It doesn’t write to your repo. The broader write permissions on the GitHub App exist for other Cursor features (e.g., BugBot / Cloud Agents), but Marketplace itself doesn’t use them.

Let me know if connecting the GitHub App fixes it on your end, and I’ll share updates as soon as we have them.

Best,
Mohit

1 Like

Thanks!

Quick question — if I connect the GitHub App, do the Refresh, then disconnect it, would that work? Or does the App need to stay connected for Refresh to function?

Resolution: Team Marketplace “No plugins found” / Refresh error after Cursor 2.6

Background

I had a working Team Marketplace on a public GitHub repo since before the 2.6 release. No GitHub App was connected — I would
push commits and hit Refresh in the dashboard to update the plugin. This worked fine until March 7, when the Refresh button
started failing with a generic network error.

Root Cause

Two issues were at play:

  1. Server-side parsing became stricter after 2.6. My plugin had been working with a “single plugin” structure (plugin.json and
    skills/ at the repo root, with source: “.” in marketplace.json). This was accepted before March 7 but silently rejected
    afterward — the error message was misleadingly reported as a network/VPN issue rather than a parsing failure.
  2. The source field in marketplace.json must follow the exact format used by the official cursor/plugins repository — a bare
    directory name (e.g., “product-toolkit”), not a relative path with ./ prefix (e.g., “./product-toolkit”).

What fixed it

I restructured the repository to match the official cursor/plugins repo format:

Before (broken):
repo-root/
├── .cursor-plugin/
│ ├── marketplace.json ← source: “.” or “./product-toolkit”
│ └── plugin.json
├── skills/
│ └── …

After (working):
repo-root/
├── .cursor-plugin/
│ └── marketplace.json ← source: “product-toolkit”
├── plugins/
│ └── product-toolkit/
│ ├── .cursor-plugin/
│ │ └── plugin.json
│ └── skills/
│ └── …

Key changes to marketplace.json:
{
“name”: “hanaplugin”,
“owner”: {
“name”: “…”,
“email”: “…”
},
“metadata”: {
“description”: “…”,
“version”: “0.1.0”,
“pluginRoot”: “plugins”
},
“plugins”: [
{
“name”: “product-toolkit”,
“source”: “product-toolkit”,
“description”: “…”
}
]
}

Key changes to plugin.json:

  • Removed “skills”: “skills/” (let Cursor auto-discover from default directories)
  • Removed empty “email”: “” from the author field
  • Added displayName

Takeaways

  • The official cursor/plugins repo is the most reliable reference for the expected structure — not the cursor/plugin-template
    repo, which uses ./ prefixed paths and may not reflect current server-side parsing behavior.
  • If the dashboard shows “No plugins found” or the Refresh button fails with a network error, it’s likely a parsing/validation
    failure, not an actual network issue. The error message is misleading.
  • Structures that worked before 2.6 (single-plugin, source: “.”, no marketplace.json) may no longer be accepted. The
    multi-plugin marketplace structure appears to be the only reliably supported format now.

Really impressive debugging, thanks for sharing the full resolution. That’s going to help others hitting the same thing.

Two takeaways I’ve flagged for the team from your findings:

  1. The error message is misleading — a parsing/validation failure shouldn’t surface as “check your internet connection.” That’s being tracked.

  2. The stricter parsing broke backward compatibility for structures that previously worked (like source: "." and ./ prefixed paths) without a changelog entry. Also tracked.

And a correction on my end: my earlier suggestion to connect the GitHub App wouldn’t have actually helped here, since the issue was server-side parsing, not authentication, the same error would have occurred either way. Glad you found the real cause before going down that path.

Your write-up is a great reference for anyone else setting up Team Marketplaces. Thank you for that once again.

This topic was automatically closed 22 days after the last reply. New replies are no longer allowed.