HTTP/2 makes Cursor unusable

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

I still getting the “Connection failed. If the problem persists, please check your internet connection or VPN”
I ran Network diagnostics and there is everything fine e2e.
I tried to switch different networks and still getting the same.
Only switching the HTTP protocol to /1.1, /1.0 in Network tab Cursor Settings helps

Steps to Reproduce

Agent chat + HTTP/2

Expected Behavior

“Connection failed. If the problem persists, please check your internet connection or VPN” message

Screenshots / Screen Recordings

Operating System

Linux

Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.1.47
VSCode Version: 1.105.1
Commit: 2d3ce3499c15efd55b6b8538ea255eb7ba4266b0
Date: 2025-12-04T02:31:50.567Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Linux x64 6.14.0-36-generic

For AI issues: which model did you use?

Auto but it happens with every model

For AI issues: add Request ID with privacy disabled

Request ID: 0d1ff565-f1df-411b-bbe7-6174b5a462ab
ConnectError: [internal] 49495203907776:error:10000410:SSL routines:OPENSSL_internal:SSLV3_ALERT_HANDSHAKE_FAILURE:../../third_party/boringssl/src/ssl/tls_record.cc:486:SSL alert number 40

at isu.$streamAiConnect (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:6409:406134)
at async vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:565:80844
at async Object.run (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:6477:42602)
at async o (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:2815:1269)
at async Promise.allSettled (index 0)
at async fHr.run (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:2815:6513)

Does this stop you from using Cursor

Yes - Cursor is unusable

5 Likes

Hey, thanks for the report. This is a known issue on some networks with HTTP/2.

What you can do now:

To help us dig deeper, please share:

  • Screenshot of Settings → Network → Run Diagnostics
  • Network type: VPN/proxy/corporate network, whether Zscaler/Cloudflare/TLS-intercept is present
  • Behavior on another network without VPN/proxy
  • Console errors from Help → Toggle Developer Tools
  • New Request IDs from failed requests

Docs for common issues: Common Issues | Cursor Docs

Let me know if keeping HTTP/2 disabled is stable. I’ll forward the case to the team once I have these details.

I can see same problem on my environment. And I have it multiple times already.

Skipping all the steps…
If I remove User/workspaceStorage/<workspace>/state.vscdb from user’s folder - it start working again, but I loosing all my project chat history. So there is something in ItemTable that prevent HTTP/2 from running. I have not find it yet, but it’s there. And it has nothing with network config.

So currently 2 solutions:

  • switch to HTTP/1.1
  • reset chat history (remove state.vscdb)

But I want to use HTTP/2 and have my chat history in place.

UPD: Actually issue reproduced every time when I create 2nd agent chat, If I remove all chats - first one will work, 2nd will not.

2 Likes

Cursor V2 HTTP/2 TLS handshake failure to api2.cursor.sh (boringssl alert 40)

Hi Cursor team,

Cursor V2 fails to connect to api2.cursor.sh when using HTTP/2: Network Diagnostics shows SSLV3_ALERT_HANDSHAKE_FAILURE (boringssl, alert number 40) for API/Ping/Chat/Agent. Cursor V1.1 works fine.

Environment:

  • macOS (darwin 25.1.0), no proxy/VPN.
  • System proxies disabled (scutil --proxy, networksetup -getwebproxy/-getsecurewebproxy/-getautoproxyurl → Disabled).
  • TLS from system is fine:
    • openssl s_client -connect api2.cursor.sh:443 -servername api2.cursor.sh → OK (TLS 1.3, GTS Root R4).
    • curl -I --http2 https://api2.cursor.sh → HTTP/2 200 OK.
    • node -e “require(‘https’).get(‘https://api2.cursor.sh’, …)” → status 200.

Behavior:

  • In Cursor V2 with HTTP/2 (default) Diagnostics are red with SSL handshake failure.
  • Switching Network → HTTP Compatibility Mode = HTTP/1.1 fixes everything.

Expectation:

  • HTTP/2 should work in V2 without handshake errors, or provide a flag/workaround in the network stack (boringssl/h2).

Also I from Ukraine

5 Likes

Please prioritize the bugfix. It really is a pain.

I’ve noticed a lot of similar reports on the forum.

Request ID: a75ca96e-7c6e-48f2-bbab-33fd992c280d
ConnectError: [internal] 1151053741376:error:10000410:SSL routines:OPENSSL_internal:SSLV3_ALERT_HANDSHAKE_FAILURE:../../third_party/boringssl/src/ssl/tls_record.cc:486:SSL alert number 40

at cGc.$streamAiConnect (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:11956:453313)
at async vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:585:94724
at async Object.run (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:12004:10221)
at async o (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:8410:1269)
at async Promise.allSettled (index 0)
at async Ezr.run (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:8410:6561)

2 Likes

This helped in my case - but it’s complete amnesia. All chats will be lost

rm -rf ~/.config/Cursor ~/.cache/Cursor ~/.cursor

Same issue.

It seems this is a genuine bug on the Cursor side. Hopefully the team will notice it. I also didn’t use any VPNs or proxies and tried with different networks.

1 Like

Ok, seems HTTP/2 start working again. At least for me

1 Like

Same issue here. No proxies, VPNs, bridges etc. are used.

Version: 2.2.20 (user setup)
VSCode Version: 1.105.1
Commit: b3573281c4775bfc6bba466bf6563d3d498d1070
Date: 2025-12-12T06:29:26.017Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Windows_NT x64 10.0.26200

I can confirm too - the issue is gone (v2.2.20)

Ok…It does not work again…
And now I see list of errors in diagnostics

I wonder if Cursor’s new Debug mode can’t handle this issue though? :^))

I have been using HTTP/2 for a month or maybe little bit more than that. Before it was no-go, but now it seems to be working in my case.

Why did I try again? Because network diagnostics showed it had lesser ping than HTTP1.1.

I replied in this thread: Connection error in Cursor when on Ukrainian IP
So I’ll duplicate it here that the issue is still relevant as of v2.2.20 (it was gone for one session, but after I relaunched the app, it started happening again).

I ended up installing the older version as suggested in one of the similar threads on this topic. v2.1.42 works for me:

2 Likes

hey @deanrie it’s now clear that 2.1.50 broke the HTTP/2. Can the devs throw the 2.1.42 vs 2.1.50 diff to Gemini 3 Pro and get the thing fixed?))

1 Like

For me it seems not related to the app version. Because it stop/start working on the same version. Today HTTP/2 start working again, I did not make any updates.


no matter what network I’m on. Nothing seems to be working. It used to work well till yesterday, don’t know what happened.

Problem returned, and persists for few days already…