Can not use cursor because of clash verge

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

i can not use cursor because my vpn clash verge,fix it please!!!

Steps to Reproduce

use clash verge

Operating System

MacOS

Version Information

Version: 2.4.28
VSCode Version: 1.105.1
Commit: f3f5cec40024283013878b50c4f9be4002e0b580
Date: 2026-02-03T00:56:18.293Z
Build Type: Stable
Release Track: Default
Electron: 39.2.7
Chromium: 142.0.7444.235
Node.js: 22.21.1
V8: 14.2.231.21-electron.0
OS: Darwin arm64 23.5.0

Does this stop you from using Cursor

Yes - Cursor is unusable

Hey, thanks for the report. There’s a working fix for Clash Verge. You need to add the Cursor domain to the whitelist so it won’t go through the proxy.

In Clash Verge, create a merge subscription and add this rule:

prepend-rules:
    - 'DOMAIN,api2.cursor.sh,DIRECT'

Full instructions and explanation are here: Network issus in china

If it doesn’t help, let me know and we can try other options.

it can work at first time!
but i update the cursor version,the problem happened again :nauseated_face:

Request ID: d275104b-e1cd-4c08-8e70-432eb2a0fd12
[internal] Failed to run step, exceeded max retries
LTe: [internal] Failed to run step, exceeded max retries
at $mf (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:9095:38337)
at Fmf (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:9095:37240)
at Xmf (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:9096:5088)
at hva.run (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:9096:9098)
at async qyt.runAgentLoop (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:34196:57104)
at async jpc.streamFromAgentBackend (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:34245:7695)
at async jpc.getAgentStreamResponse (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:34245:8436)
at async FTe.submitChatMaybeAbortCurrent (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:9170:14623)
at async Ei (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:32994:3808)

i guess because of the client,i very like cursor but now i feel sad

i set http1.1 and set
```

prepend-rules:

  • ‘DOMAIN,api2.cursor.sh,DIRECT’

and click “run diagnostic“,everything shows ok but the client report
```

Request ID: fd25def5-6ef9-42f3-8013-064f2a726ce7
[internal] Failed to run step, exceeded max retries
LTe: [internal] Failed to run step, exceeded max retries
at $mf (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:9095:38337)
at Fmf (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:9095:37240)
at Xmf (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:9096:5088)
at hva.run (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:9096:9098)
at async qyt.runAgentLoop (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:34196:57104)
at async jpc.streamFromAgentBackend (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:34245:7695)
at async jpc.getAgentStreamResponse (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:34245:8436)
at async FTe.submitChatMaybeAbortCurrent (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:9170:14623)
at async Ei (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:32994:3808)
```

I can see you applied the workaround, but it still isn’t working. Try adding all Cursor domains to the whitelist, the list has expanded:

prepend-rules:
    - 'DOMAIN-SUFFIX,cursor.sh,DIRECT'            # api2, api3, api4, api5, repo42
    - 'DOMAIN-SUFFIX,gcpp.cursor.sh,DIRECT'       # us-only, us-eu, us-asia
    - 'DOMAIN-SUFFIX,cursor-cdn.com,DIRECT'       # CDN and extensions
    - 'DOMAIN-SUFFIX,cursorapi.com,DIRECT'        # marketplace
    - 'DOMAIN-SUFFIX,downloads.cursor.com,DIRECT' # updates
    - 'DOMAIN-SUFFIX,todesktop.com,DIRECT'        # download.todesktop.com for updates

This should cover all endpoints, including the new api5.cursor.sh for Agent mode.

Important about HTTP/2: Some endpoints (api3, api4, repo42, gcpp.*) require HTTP/2. If your proxy doesn’t support HTTP/2 or buffers streaming, add this to Cursor settings.json:

{
  "cursor.general.disableHttp2": true,
  "http.proxyStrictSSL": false
}

Streaming check: Run this in your terminal:

echo -ne "\x0\x0\x0\x0\x11{\"payload\":\"foo\"}" | curl --http1.1 -No - -XPOST \
  -H "Content-Type: application/connect+json" \
  --data-binary @- https://api2.cursor.sh/aiserver.v1.HealthService/StreamSSE

Expected result: output should appear line by line over about 5 seconds. If all the text shows up at once at the end, your proxy is buffering streaming, so you’ll need to enable disableHttp2.

Share the result and we can dig in further.

it is no effective,then I click “Run Diagnostic“,it shows

✅DNS
✅SSL
✅ΑΡΙ
Ping
Response took 2280ms
Chat
Streaming responses are being buffered by a proxy in your inetwork environment
Agent
HTTP/1.1 SSE responses are being buffered by a proxy in your network environment
Marketplace

i use http1.1 and set rule in clash verge

# Profile Enhancement Merge Template for Clash Verge

profile:
  store-selected: true

prepend-rules:
    - 'DOMAIN-SUFFIX,cursor.sh,DIRECT'            # api2, api3, api4, api5, repo42
    - 'DOMAIN-SUFFIX,gcpp.cursor.sh,DIRECT'       # us-only, us-eu, us-asia
    - 'DOMAIN-SUFFIX,cursor-cdn.com,DIRECT'       # CDN and extensions
    - 'DOMAIN-SUFFIX,cursorapi.com,DIRECT'        # marketplace
    - 'DOMAIN-SUFFIX,downloads.cursor.com,DIRECT' # updates
    - 'DOMAIN-SUFFIX,todesktop.com,DIRECT'        # download.todesktop.com for updates

I rollback the version to 2.3.x,can you fix these problem in 2.5.x???

@deanrie

I see that 2.3.x works, and that’s a totally fine temporary workaround. The issue is that in 2.4.x the proxy handling logic changed, and even with the correct settings the streaming still gets buffered.

Your case isn’t the only one. A few users reported the same thing after upgrading to 2.4.x: 2.4.x version can't use agent behind company proxy

For now I recommend staying on 2.3.x. It’s a stable version and works correctly with Clash Verge. The team knows about the issue, but there’s no fix yet.

If you want to help with diagnostics for the engineers, send the result of this terminal command. Run it with Clash Verge enabled.

echo -ne "\x0\x0\x0\x0\x11{\"payload\":\"foo\"}" | curl --http1.1 -No - -XPOST \
  -H "Content-Type: application/connect+json" \
  --data-binary @- https://api2.cursor.sh/aiserver.v1.HealthService/StreamSSE

it looks like no problem

fan@fandeMacBook-Pro-2 cloudwise % echo -ne "\x0\x0\x0\x0\x11{\"payload\":\"foo\"}" | curl --http1.1 -No - -XPOST \
  -H "Content-Type: application/connect+json" \
  --data-binary @- https://api2.cursor.sh/aiserver.v1.HealthService/StreamSSE
{"payload":"foo"}{"payload":"foo"}{"payload":"foo"}{"payload":"foo"}{"payload":"foo"}{}

and I want to know when the Cursor Team fix this,150+ fellows have rollbacked version,we want the Cursor Tam to fix this quickly

1 Like