You open the Extensions sidebar in Cursor, search for “Prettier” or “ESLint” or that obscure language server you need, and get either a spinning loader that never resolves, an explicit “network error,” or an empty list. Or the extension is there but Install does nothing. Cursor is a VS Code fork, but the marketplace situation is not identical: Cursor cannot legally use Microsoft’s Visual Studio Marketplace, so it ships with Open VSX as the default gallery. When the marketplace breaks, the cause is almost always one of: wrong gallery URL in settings, a corporate proxy blocking the gallery domain, Open VSX itself returning slow or 5xx, or an extension that lives only on Microsoft’s marketplace and is not mirrored. Each has a clean fix.
Common causes
Ordered by hit rate, highest first.
1. The extension exists only on Microsoft’s marketplace, not Open VSX
Many popular extensions (especially Microsoft-published ones like Pylance, Remote-SSH, C#) are not on Open VSX. Search returns empty because the extension simply is not in the catalog Cursor uses.
How to judge: Visit open-vsx.org and search for the extension name. No result means it is Microsoft-exclusive.
2. Corporate proxy or firewall blocks open-vsx.org
The Extensions panel makes HTTPS calls to open-vsx.org and a CDN. If your proxy blocks either, the panel either hangs or shows a network error.
How to judge: From the integrated terminal: curl -I https://open-vsx.org/api/-/search?query=prettier. A 403, timeout, or connection refused confirms the proxy.
3. Custom gallery URL is misconfigured
Settings can override extensions.gallery.serviceUrl. If someone (or a prior fix attempt) set a bad URL, the gallery returns malformed JSON or 404.
How to judge: Open Cursor user settings JSON and search for extensions.gallery. Any custom URL different from the Open VSX default is suspect.
4. Open VSX is having an outage
Smaller infra than Microsoft’s marketplace; brief 5xx windows happen.
How to judge: status.open-vsx.org or curl the search endpoint. 5xx for everyone means wait it out.
5. Cursor uses an old extension cache that returns stale empty results
If a prior search returned empty due to a transient error, the result can stick in cache until you force-refresh.
How to judge: Click the refresh icon on the Extensions panel header. If results appear after, cache was stale.
6. The .vsix you want is published but version-pinned to a VS Code engine Cursor does not match
Cursor’s engines.vscode compat is close but not identical. An extension requiring vscode ^1.95 may refuse to install on a Cursor build linked to an older engine.
How to judge: Try installing the .vsix from disk. If the error mentions engine compatibility, that is it.
Before you start
- Confirm whether the extension you want is on Open VSX or only on Microsoft’s marketplace; the workaround differs.
- Have a .vsix download handy as a fallback (most extensions can be installed manually).
- Know your network constraints: home, VPN, corporate proxy.
Information to collect
- Cursor version (Help → About).
- OS and network setup (VPN, proxy).
- Whether you can reach
https://open-vsx.orgfrom a browser on the same machine. - Curl output for
https://open-vsx.org/api/-/search?query=prettier. - Current
extensions.gallery.*values in user settings. - The exact error text in the Extensions panel.
Step-by-step fix
Step 1: Refresh the Extensions panel
Click the refresh icon on the Extensions sidebar header. If the network was momentarily off when it first loaded, this clears the cached empty state.
Step 2: Verify the gallery URL
Open Cursor user settings JSON. If you see custom extensions.gallery.* keys, remove them to fall back to Cursor’s defaults:
{
"extensions.gallery.serviceUrl": "https://open-vsx.org/vscode/gallery",
"extensions.gallery.itemUrl": "https://open-vsx.org/vscode/item"
}
Either remove the keys entirely or paste those exact values. Reload the window.
Step 3: Test the gallery from the terminal
In Cursor’s integrated terminal:
curl -sI https://open-vsx.org/api/-/search?query=prettier | head -1
A 200 OK means the gallery is reachable. A 403, 5xx, or no response points at network or upstream.
Step 4: Bypass the proxy for testing
If you suspect the proxy, switch to a phone hotspot and reload the Extensions panel. If the list now loads, ask IT to allowlist open-vsx.org and its CDN host. Long-term, a corporate Open VSX mirror is the cleanest answer.
Step 5: Install the extension manually from a .vsix
For extensions Open VSX does not host, download the .vsix directly from the publisher’s GitHub Releases or their docs, then in Cursor: Command Palette → “Extensions: Install from VSIX.” This bypasses the gallery entirely.
Step 6: Point at a self-hosted or mirror gallery
Teams behind strict firewalls can stand up an Open VSX mirror and update settings:
{
"extensions.gallery.serviceUrl": "https://your-mirror.internal/vscode/gallery",
"extensions.gallery.itemUrl": "https://your-mirror.internal/vscode/item"
}
This needs ops support but is the durable fix for restricted networks.
Step 7: Upgrade or downgrade Cursor for engine compat
If a specific extension complains about engines.vscode, check Cursor’s underlying VS Code engine in Help → About. Upgrade Cursor (newer engine) or pick an older version of the extension that targets the engine you have.
Verify
- Search for a well-known extension like “Prettier” and confirm the panel shows results.
- Install one and confirm it activates (status bar entry, command palette command, etc.).
- Reload the window and confirm the extension survives.
- Open a fresh search to confirm the panel loads in under 3 seconds.
Long-term prevention
- Stick with Open VSX-hosted extensions where possible; they install cleanly out of the box.
- For Microsoft-exclusive extensions you depend on, archive the
.vsixper Cursor version so you can reinstall without internet. - Track Cursor releases and re-check engine compatibility before bumping.
- For teams, run an Open VSX mirror; never depend on
marketplace.visualstudio.comfrom inside the firewall. - Document the gallery URLs and any allowlist requirements in your team onboarding.
Common pitfalls
- Pasting the Microsoft marketplace URL into
extensions.gallery.serviceUrl. It is contractually off-limits for non-Microsoft IDEs. - Installing an extension and then upgrading Cursor without re-checking compatibility; the engine bump can disable extensions silently.
- Trusting that an empty search means the extension does not exist. It might be on Microsoft’s marketplace only.
- Forgetting that
.vsixinstalls bypass the gallery and so do not auto-update; you have to refresh them manually. - Allowing only
open-vsx.orgthrough the proxy but not its CDN host. Both must be reachable.
FAQ
- Why does Cursor not use Microsoft’s marketplace? Microsoft’s terms restrict their gallery to official Microsoft products. Cursor is a fork, so it ships with Open VSX as the legal default.
- Can I install Pylance or Remote-SSH on Cursor? Officially no, since both are Microsoft-only. Cursor ships proprietary equivalents for some; check the docs.
- How do I update a manually installed .vsix? Re-download the new version and install from VSIX again. There is no auto-update for sideloaded extensions.
- Is Open VSX maintained? Yes, by the Eclipse Foundation. Coverage is good for major extensions but not exhaustive.
- Will my .code-workspace recommended extensions install? Only those available on the gallery you are pointed at. Missing ones surface as warnings.