Switch Language
Toggle Theme

Cursor Proxy Network Troubleshooting: Proxy Settings, Diagnostics, and HTTP/2 Fixes

Cursor’s spinner in the corner ran five minutes. AI died mid-edit: “Network request failed.” Browser and ping were fine—20 ms to Google.

The next day on corporate proxy, Cursor would not start. Logs mixed ERR_HTTP2_PROTOCOL_ERROR, ECONNREFUSED, and certificate verify failed—each familiar alone, together opaque.

Three days of issues, Discord threads, and bad “silver bullets” later, the pattern was clear: not one root cause—proxy, HTTP/2, certificates, and DNS stacked.

This article was refreshed in June 2026 against Cursor’s current docs. Start with Cursor Settings > Network diagnostics, then work through proxy settings, HTTP/2 compatibility mode, certificates, and DNS in that order.

One trap deserves an early mention: plenty of people enter the right proxy address and Cursor still won’t connect. The reason is that Cursor’s http.proxySupport defaults to override, which means it only honors the http.proxy value in settings.json—the system proxy is ignored, and on a fresh install that field is empty. There’s a dedicated section on this below; for now, just keep it in mind.

Don’t Rush to Change Configs: Three Steps to Quickly Locate the Problem

When network issues arise, many people immediately start changing proxies, deleting certificates, and reinstalling software. After all that hassle, the problem isn’t solved and the environment is even messier.

My advice: spend 5 minutes confirming what’s actually wrong.

Step 1: Confirm if it’s Cursor’s problem or your network’s problem

Open the terminal and run three commands:

# Test basic network
ping api.openai.com

# Test DNS resolution
nslookup api.openai.com

# Test HTTPS connection
curl -I https://api.openai.com

If ping works but curl fails, it’s almost certainly a proxy or certificate issue. If even ping doesn’t work, the problem is at your network layer, not Cursor.

Step 2: Check Cursor’s error logs

Many people skip this step, but the logs spell it out clearly.

  • Windows: %APPDATA%\Cursor\logs\main.log
  • macOS: ~/Library/Application Support/Cursor/logs/main.log
  • Linux: ~/.config/Cursor/logs/main.log

Open with a text editor and search for ERROR or WARN. Common errors:

  • ECONNREFUSED → Proxy misconfigured, or proxy server is down
  • ERR_HTTP2_PROTOCOL_ERROR → HTTP/2 protocol incompatibility (the most frustrating one)
  • certificate verify failed → SSL certificate issue
  • ETIMEDOUT → Timeout, possibly slow DNS or blocked

Step 3: Test if Cursor’s proxy settings are working

Cursor is Electron-based, and its proxy configuration doesn’t use the system proxy—you need to configure it separately. Testing method:

  1. Open Cursor settings (Ctrl+, or Cmd+,)
  2. Search for proxy
  3. Check if http.proxy and https.proxy are empty

If they’re empty, but you have proxy software running locally (Clash, V2Ray, Shadowsocks), then Cursor isn’t using the proxy at all—of course it can’t connect.

Four Ways to Configure Proxy (There’s Always One That Fits)

Proxy issues are the number one culprit in Cursor network failures. But many people don’t know that Cursor supports four different proxy configuration methods, each for completely different scenarios.

Before configuring a proxy, check one thing: is proxySupport set to override?

If your local proxy (Clash / V2Ray) is running and your browser tunnels fine, but Cursor still won’t connect, don’t rush to fill in an address. Cursor inherits a http.proxySupport setting from VS Code with four modes:

  • off: never use a proxy
  • on: always read the system proxy
  • fallback: check http.proxy in settings.json first, then fall back to the system proxy when it’s empty
  • override: use only the http.proxy from settings.json and ignore the system proxy

Here’s the trap: http.proxySupport defaults to override, while http.proxy defaults to empty. Stack the two together and Cursor reads neither your configured address (there isn’t one) nor the system proxy—it connects raw, so login and AI requests both fail.

The fix is simple. Open settings (Ctrl+,), search for proxy support, and change Http: Proxy Support from override to on or fallback, then restart Cursor. If you just want Cursor to follow the system proxy, this single change is often enough; the four methods below are for people who need finer control.

Method 1: Fill in proxy address directly in settings (easiest)

Applicable scenario: You have a clear proxy server address (like an HTTP proxy provided by your company)

Steps:

  1. Open Cursor settings
  2. Search for proxy
  3. Fill in http.proxy: http://127.0.0.1:7890 (replace with your proxy address and port)

Pitfalls to watch out for:

  • If proxy requires username/password, format is http://username:password@127.0.0.1:7890
  • HTTPS proxy also needs separate https.proxy configuration, otherwise only HTTP requests go through proxy
  • Some proxy software (like Clash) default port is 7890, others (V2Ray) use 10808—don’t mix them up

Method 2: Environment variables (for command line startup)

Applicable scenario: You’re used to launching Cursor from terminal, or need to temporarily switch proxies

Windows (PowerShell):

$env:HTTP_PROXY="http://127.0.0.1:7890"
$env:HTTPS_PROXY="http://127.0.0.1:7890"
cursor

macOS/Linux:

export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
cursor

The advantage of this method is it doesn’t pollute global configuration—close the terminal and it’s gone.

Applicable scenario: Company IT department configured PAC file or transparent proxy

Cursor actually supports reading system proxy, but it’s disabled by default. How to enable:

  1. Find Cursor’s startup configuration file

    • Windows: Right-click desktop shortcut → Properties → Target
    • macOS: Edit /Applications/Cursor.app/Contents/Info.plist
  2. Add launch parameter: --proxy-auto-detect

This way Cursor will automatically read system proxy configuration without manual address entry.

Applicable scenario: Company proxy performs man-in-the-middle decryption of HTTPS traffic, causing certificate validation to fail

Serious warning: This method reduces security, use only temporarily!

Launch parameter: --ignore-certificate-errors

Full command (Windows):

& "C:\Users\YourUsername\AppData\Local\Programs\Cursor\Cursor.exe" --ignore-certificate-errors

With this parameter, Cursor won’t verify SSL certificates, bypassing many corporate proxy certificate issues. But remember, this is a last resort—avoid if possible.

The HTTP/2 Pitfall: Why Does Browser Work But Not Cursor?

The symptom: Browser opens OpenAI API perfectly fine, curl command returns data normally, but Cursor throws ERR_HTTP2_PROTOCOL_ERROR.

Do not jump straight to “version bug” as the explanation. First use Cursor’s Network diagnostics to confirm whether the failure is actually HTTP/2 compatibility, then test HTTP/1.1.

Preferred fix: use Cursor’s HTTP/2 compatibility setting

  1. Open Cursor settings
  2. Go to Network settings
  3. Run Run Diagnostics
  4. If diagnostics or logs point to HTTP/2, enable Disable HTTP/2, or set HTTP Compatibility Mode to HTTP/1.1
  5. Fully quit Cursor and restart it, instead of only closing the window

If you’d rather not open the panel each time, set it directly in settings.json:

{
  "cursor.general.disableHttp2": true
}

This is an officially supported key with the same effect as the Disable HTTP/2 toggle, and it sits next to your proxy keys. Only fall back to the launch parameter cursor --disable-http2 on older versions that expose neither the panel toggle nor this key.

Try switching DNS: HTTP/2 failures are sometimes a routing problem

Some HTTP/2 errors don’t originate in Cursor at all; they come from the node your DNS resolves to. Certain DNS providers resolve Cursor’s API domains to a Cloudflare edge node where the handshake fails, producing an SSL handshake error. Multiple users on the official forum report that switching system DNS to Cloudflare (1.1.1.1) or Google (8.8.8.8) restores HTTP/2 outright. If disabling HTTP/2 noticeably slows you down and you’d rather not stay on HTTP/1.1, switch DNS first and try re-enabling HTTP/2 once.

Fallback: modify proxy software configuration (Clash example)

Open Clash config file (config.yaml), find your proxy rules, and add:

proxies:
  - name: "Your proxy name"
    type: http
    server: 127.0.0.1
    port: 7890
    http-version: "1.1"  # Force HTTP/1.1

Restart Clash and Cursor after changes. If the problem is HTTP/2 negotiation in the proxy chain, this usually stabilizes requests. If it still fails, go back to diagnostics and logs rather than stacking more launch flags.

Ultimate Solution for Corporate Network Environments

Corporate networks are the most troublesome scenario, combining all the previous problems: forced proxies, SSL man-in-the-middle, firewalls, internal DNS… each can make Cursor stop working.

I’ve compiled a configuration solution that works 100% in corporate environments:

Configuration checklist (execute in order)

1. Get company proxy information

Ask IT department for this information:

  • Proxy server address and port (e.g., proxy.company.com:8080)
  • Whether username/password required
  • Whether using PAC auto-configuration
  • Whether SSL decryption is used (if so, get the root certificate)

2. Configure Cursor proxy

Add to settings.json:

{
  "http.proxy": "http://username:password@proxy.company.com:8080",
  "https.proxy": "http://username:password@proxy.company.com:8080",
  "http.proxySupport": "override",
  "http.proxyStrictSSL": false,
  "cursor.general.disableHttp2": true
}

A few notes: once you’ve filled in http.proxy by hand, keeping http.proxySupport at override is actually the cleanest choice, because it guarantees Cursor routes only through this corporate proxy. If there’s SSL man-in-the-middle, you must add http.proxyStrictSSL: false. And since most corporate proxies block HTTP/2, setting cursor.general.disableHttp2 to true here saves you a round of troubleshooting.

3. Import company root certificate

If company has SSL decryption, you must import the root certificate, otherwise Cursor will keep reporting certificate verify failed.

Windows:

  1. Double-click root certificate file (.crt or .cer)
  2. Select “Install Certificate” → “Local Machine” → “Trusted Root Certification Authorities”

macOS:

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain company-root-cert.crt

4. Add launch parameter combination

Create a launch script (Windows uses .bat, macOS/Linux uses .sh):

Windows (start-cursor.bat):

@echo off
set HTTP_PROXY=http://proxy.company.com:8080
set HTTPS_PROXY=http://proxy.company.com:8080
start "" "C:\Users\YourUsername\AppData\Local\Programs\Cursor\Cursor.exe" --proxy-auto-detect --disable-http2

macOS/Linux (start-cursor.sh):

#!/bin/bash
export HTTP_PROXY=http://proxy.company.com:8080
export HTTPS_PROXY=http://proxy.company.com:8080
/Applications/Cursor.app/Contents/MacOS/Cursor --proxy-auto-detect --disable-http2

From now on, use this script to launch Cursor—don’t click the icon directly.

5. Test connection

After launching, open Cursor’s developer tools (Ctrl+Shift+I or Cmd+Option+I), switch to Network tab, ask the AI any question, and see if requests return normally.

If still not working, go back to the log file (path mentioned earlier), find the latest error information, and go through the troubleshooting steps again.

Summary

After all that, Cursor’s network problems really boil down to four pitfalls:

  1. Proxy ignored → First check whether http.proxySupport is override, then check http.proxy and environment variables
  2. HTTP/2 protocol conflict → First use Disable HTTP/2 or HTTP Compatibility Mode: HTTP/1.1 in Network settings, switch DNS if needed
  3. SSL certificate validation failed → Import root certificate or temporarily disable verification
  4. Corporate network restrictions → Combination: proxy + certificate + launch parameters

I spent three days originally because I didn’t know these four problems could stack. Fixed the proxy, HTTP/2 still errored; disabled HTTP/2, certificate issues appeared; imported certificate, DNS wouldn’t resolve… Each time I thought I solved it, just got a different error.

Looking back now, if I’d followed this article’s troubleshooting order from the start, it would’ve taken half an hour.

One last thing: Don’t treat error logs as decorations. Every time you encounter a problem, first go to the logs to find the latest ERROR—90% of problem answers are there. For the remaining 10% you can’t solve, take the logs to GitHub Issues or Discord—others can help you locate issues faster too.

Network problems aren’t scary—what’s scary is flailing around blindly. Hope this article saves you those 72 hours.

Official Sources and Next Reading

Complete Cursor Network Troubleshooting Process

Complete solution from basic network testing to corporate environment configuration

Estimated time: PT30M

  1. 1

    Step 1: Step 1: Quickly Locate Problem Root Cause

    Use three commands to confirm network connectivity:
  2. 2

    Step 2: Step 2: Configure Proxy (Choose One of Four Methods)

    First check proxySupport: search for proxy support. If Http: Proxy Support is the default override and http.proxy is empty, Cursor ignores the system proxy. Changing it to on or fallback usually lets Cursor follow the system proxy.
  3. 3

    Step 3: Method 1

    Settings UI (recommended for beginners):
  4. 4

    Step 4: Method 2

    Environment Variables (temporary use):
  5. 5

    Step 5: Method 3

    System Proxy Auto-detect (corporate environment):
  6. 6

    Step 6: Method 4

    Ignore Certificate Errors (emergency use, insecure):
  7. 7

    Step 7: Step 3: Resolve HTTP/2 Protocol Conflict

    If logs show ERR_HTTP2_PROTOCOL_ERROR, use this order:
  8. 8

    Step 8: Method 1

    Official settings first:
  9. 9

    Step 9: Method 2

    Launch parameter fallback:
  10. 10

    Step 10: Method 3

    Modify Proxy Software Config (Clash example):
  11. 11

    Step 11: Step 4: Complete Corporate Network Environment Configuration

    Gather information (consult IT department):
  12. 12

    Step 12: Create launch script (Windows

    start-cursor.bat):
  13. 13

    Step 13: Step 5: Verify Connection and Continuous Monitoring

    Test connection:

FAQ

Why can my browser access OpenAI, but Cursor can't connect?
Two reasons. First, Cursor is Electron-based and doesn't automatically read the system proxy, so it needs separate configuration. Second, and more subtle, is a default value: Cursor's http.proxySupport defaults to override, meaning it only uses the http.proxy in settings.json—and that field is empty by default, so the system proxy is ignored entirely. The result is that your browser works through the proxy while Cursor connects directly and fails. Fix: search for proxy support and set Http: Proxy Support to on or fallback, or fill in http.proxy and https.proxy manually.
I configured a system proxy, so why does the Cursor proxy still not work?
It is usually http.proxySupport. Cursor inherits VS Code's proxy modes and defaults to override, which means it uses only the http.proxy from settings.json and ignores the system proxy; on a fresh install http.proxy is empty, so no proxy is used at all. Open settings (Ctrl+,), search for proxy support, and change Http: Proxy Support from override to on (always use the system proxy) or fallback (use the system proxy when http.proxy is empty), then restart Cursor. If you prefer precise control, keep override and set http.proxy manually.
How to fix ERR_HTTP2_PROTOCOL_ERROR?
First open Cursor Settings > Network and run Run Diagnostics. If diagnostics or logs point to HTTP/2 compatibility, enable Disable HTTP/2 or set HTTP Compatibility Mode to HTTP/1.1, then fully quit and restart Cursor. You can also add "cursor.general.disableHttp2": true to settings.json for the same effect alongside your proxy keys. If the HTTP/2 failure comes with an SSL handshake error, try switching your system DNS to Cloudflare (1.1.1.1) or Google (8.8.8.8)—sometimes DNS resolves to a problematic edge node. Use cursor --disable-http2 as a launch-parameter fallback only on older versions.
What to do about persistent certificate errors in corporate network environments?
Corporate networks typically perform SSL man-in-the-middle decryption on HTTPS traffic, causing certificate validation to fail. Proper solution: 1) Request the company's root certificate file (.crt or .cer) from IT department; 2) Import certificate to system's "Trusted Root Certification Authorities"; 3) Add "http.proxyStrictSSL": false to Cursor's settings.json. If you really can't get the certificate, you can temporarily use --ignore-certificate-errors launch parameter, but this reduces security and is only recommended for emergencies.
Should proxy port be 7890 or 10808?
Proxy port depends on the proxy software you're using. Clash default HTTP proxy port is 7890, V2Ray/V2RayN default is 10808, Shadowsocks is typically 1080 (SOCKS5). If uncertain, open your proxy software settings to check "Local Port" or "Listen Port". Note: If proxy software only provides SOCKS5 port (like 1080), configure in Cursor as socks5://127.0.0.1:1080.
Modified configuration but Cursor still won't connect—how to troubleshoot further?
Troubleshoot in this order: 1) Completely exit Cursor (not close window, but exit process), restart; 2) Check if proxy software is running normally, try testing proxy with browser; 3) Open Cursor log file (%APPDATA%\Cursor\logs\main.log), check latest ERROR information; 4) Test if proxy can access OpenAI with curl command: curl -x http://127.0.0.1:7890 https://api.openai.com; 5) If all above are normal, try combining multiple launch parameters: --proxy-auto-detect --disable-http2 --ignore-certificate-errors.
How to use launch scripts? Do I need to type commands in terminal every time?
No need to type commands every time. After creating launch script, just double-click the script file to launch Cursor. Windows users: Create .bat file (like start-cursor.bat), save to desktop, double-click this file to launch from now on. macOS/Linux users: Create .sh file (like start-cursor.sh), execute chmod +x start-cursor.sh to add execute permission, then double-click to launch. You can also right-click script file → Send to Desktop Shortcut, making it as convenient as launching normal apps.
Can I use multiple launch parameters simultaneously? Will they conflict?
Yes, you can use them simultaneously without conflicts. Common parameter combinations: cursor --proxy-auto-detect --disable-http2 (recommended for corporate networks); cursor --disable-http2 --ignore-certificate-errors (temporary emergency). Separate parameters with spaces. Note: --ignore-certificate-errors reduces security, only add when truly needed, don't use long-term.

10 min read · Published on: Jan 19, 2026 · Modified on: Jun 15, 2026

Related Posts

Comments

Sign in with GitHub to leave a comment