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.
GitHub App connected: No (never connected — worked fine without it until Mar 6)
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?
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!
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.
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:
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.
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:
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:
The error message is misleading — a parsing/validation failure shouldn’t surface as “check your internet connection.” That’s being tracked.
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.