Cursor Desktop app doesn't log into after successful web auth

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Can’t finish logging into within Cursor Desktop app. As i click on Return to Cursor after web auth it opens but login doesn’t happen.

cursor://anysphere.cursor/test link works fine for me - it opens version of app where ctrl + P works.

I’ve recorded errors in Toggle Developer Tools, attached in details.

Steps to Reproduce

  1. Install Cursor Desktop app
  2. Try to log into
  3. Finish web auth, click to return
  4. Cursor Desktop app shows up, login doesn’t happen, settings doesn’t open

Expected Behavior

Cursor Desktop app shows up, login succeeds

Screenshots / Screen Recordings

Toggle Developer Tools output.log (4.53 KB)

Operating System

Windows 10/11

Version Information

Version: 3.21.18 (system setup)
VS Code Extension API: 1.128.0
Commit: c4730f7d93d787d9ab120af715999f0345ee5bc0
Date: 2026-09-22T02:04:34.641Z
Layout: IDE
Build Type: Stable
Release Track: Default
Electron: 42.10.0
Chromium: 148.0.7778.280
Node.js: 24.18.1
V8: 14.8.178.38-electron.0
xterm.js: 6.1.0-beta.291
OS: Windows_NT x64 10.0.26200

Does this stop you from using Cursor

Yes - Cursor is unusable

Hey @ALEKS1, thanks for the report and for attaching the DevTools log, that pinpoints it.

The browser part of the login is completing fine on our side, and “Return to Cursor” is reaching the app as expected. The step that fails is the app itself contacting our server (api2.cursor.sh) to pick up the session. It times out, which means something on this PC or network is blocking Cursor’s connection while still allowing your browser through.

Could you try these checks?

  1. In the same browser you log in with, open: https://api2.cursor.sh/auth/poll?uuid=test&verifier=test
  2. You should see a short “not found” style response. If the page does not load at all, the network is blocking it.
  3. Open PowerShell and run: curl.exe -sS -o NUL -w “%{http_code}” “https://api2.cursor.sh/auth/poll?uuid=test&verifier=test”
  4. It should print 404. If it hangs or shows an error instead, apps other than your browser are being blocked from reaching our servers.
  5. If you are on a VPN, or your laptop runs a corporate security or proxy client (for example Zscaler, Netskope, or a firewall agent), temporarily disconnect it if your company allows that, then click Log In in Cursor again.

If step 3 or 4 fails, your IT team will need to allow Cursor and our domains through the proxy or firewall. This page lists what they need: Network Configuration | Cursor Docs

Let me know what you see at steps 2 and 4, and whether logging in works with the VPN or security client off.

Hello Colin,

  1. Link https://api2.cursor.sh/auth/poll?uuid=test&verifier=testopens with message “Not found”:

    VPN was enabled

  2. Command you provided doesn’t return anything - curl just connects, so i’ve tried the same command with verbose flags:

    curl.exe -vv -sS -o NUL -w “%{http_code}” “``https://api2.cursor.sh/auth/poll?uuid=test&verifier=test``”
    22:40:50.873000 [0-x] * Uses proxy env variable https_proxy == 'http://{private-hostname}:{port}'
    22:40:50.876000 [0-0] * [HTTPS-CONNECT] added
    22:40:50.878000 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 0, 0 socks
    22:40:50.879000 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 0, 0 socks
    22:40:50.880000 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 0, 0 socks
    22:40:50.882000 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 0, 0 socks
    22:40:50.884000 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 0, 0 socks
    22:40:50.889000 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 0, 0 socks
    22:40:50.893000 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 0, 0 socks
    22:40:50.905000 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 0, 0 socks
    22:40:50.923000 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 0, 0 socks
    22:40:50.939000 [0-0] * [HTTPS-CONNECT] connect, init
    22:40:50.942000 [0-0] * [HTTPS-CONNECT] 1st attempt uses h2 from wanted versions
    22:40:50.944000 [0-0] * [SETUP] happy eyeballing to proxy {private-hostname}:{port}
    22:40:50.946000 [0-0] * Trying {private-ip-address}:{port}...
    22:40:50.948000 [0-0] * [HTTPS-CONNECT] connect -> 0, done=0
    22:40:50.950000 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 0, 1 socks
    22:40:51.006000 [0-0] * [HTTPS-CONNECT] connect -> 0, done=0
    22:40:51.012000 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 0, 1 socks
    22:40:51.074000 [0-0] * [HTTPS-CONNECT] connect -> 0, done=0
    22:40:51.081000 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 0, 1 socks
    22:40:51.140000 [0-0] * [HTTPS-CONNECT] connect -> 0, done=0
    22:40:51.146000 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 0, 1 socks
    22:40:51.162000 [0-0] * [SETUP] added HTTP proxy tunnel filter
    22:40:51.163000 [0-0] * CONNECT: no ALPN negotiated
    22:40:51.166000 [0-0] * Establishing HTTP proxy tunnel to api2.cursor.sh:443
    22:40:51.166000 [0-0] > CONNECT api2.cursor.sh:443 HTTP/1.1
    22:40:51.166000 [0-0] > Host: api2.cursor.sh:443
    22:40:51.166000 [0-0] > User-Agent: curl/8.21.0
    22:40:51.166000 [0-0] > Proxy-Connection: Keep-Alive
    22:40:51.166000 [0-0] >
    22:40:51.174000 [0-0] * [HTTPS-CONNECT] connect -> 0, done=0
    22:40:51.176000 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 0, 1 socks
    22:40:51.355000 [0-0] * Host {private-hostname}:{port} was resolved.
    22:40:51.358000 [0-0] * IPv6: (none)
    22:40:51.359000 [0-0] * IPv4: {private-ip-address}
    22:40:51.360000 [0-0] * [HTTPS-CONNECT] connect -> 0, done=0
    22:40:51.362000 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 0, 1 socks
    22:40:52.372000 [0-0] * [HTTPS-CONNECT] connect -> 0, done=0
    22:40:52.376000 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 0, 1 socks
    22:40:53.391000 [0-0] * [HTTPS-CONNECT] connect -> 0, done=0
    22:40:53.400000 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 0, 1 socks
    22:40:54.405000 [0-0] * [HTTPS-CONNECT] connect -> 0, done=0
    22:40:54.410000 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 0, 1 socks
    22:40:55.423000 [0-0] * [HTTPS-CONNECT] connect -> 0, done=0
    22:40:55.425000 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 0, 1 socks

    So it looks like api endpoint is reachable via our proxy.

Please tell me if you need also reports about running test commands from the network documentation you’ve attached in your reply - but it is pretty similar to the above output from 2 point.

When i’m disabling VPN i’m start seeing errors about proxy connection in Developer Toggle Tools output, so it’s not the issue i suppose.

best regards,
Aleks

Hey @ALEKS1, thanks for running those checks!

One thing in the curl output: curl asks your proxy to open a connection to api2.cursor.sh (the CONNECT api2.cursor.sh:443 line), but the proxy never answers, so the request just hangs. A working connection would show HTTP/1.1 200 Connection established right after that line and print 404 at the end. So the proxy set in your https_proxy variable is not letting the connection through.

That matters because Cursor uses that same https_proxy variable, while your browser uses the Windows proxy settings instead. That would explain why the browser login works but Cursor times out, and why Cursor shows proxy errors when the VPN is off.

Could you try this test?

  1. Fully quit Cursor (File > Exit), then check Task Manager that no Cursor.exe is still running.
  2. Connect the VPN.
  3. Open PowerShell and run: Remove-Item Env:https_proxy, Env:http_proxy -ErrorAction SilentlyContinue
  4. In the same PowerShell window, run: & "C:\Program Files\cursor\Cursor.exe"
  5. Click Log In, finish the browser step, and click Return to Cursor.

This only affects that one launch, nothing is changed permanently.

If you’re logged in after step 5, your IT team has two permanent options: allow api2.cursor.sh and the domains on the network configuration page through the proxy in https_proxy, or tell you which proxy Cursor should use. You can then set that proxy as "http.proxy" in %APPDATA%\Cursor\User\settings.json.