Cursor chat and agent sessions frequently stop unexpectedly across all models

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

I am experiencing frequent unexpected interruptions in Cursor chat and agent sessions.

The issue happens across all models I have tried. During a normal conversation or agent workflow, the chat/session window often stops responding or ends the current turn unexpectedly. The interruption can happen while the assistant is answering, analyzing files, or working through a development task.

The visible behavior is:

The assistant starts responding normally.
The response or workflow stops suddenly before completion.
The chat/session does not provide a clear error message or recovery explanation.
I have to manually send another message such as “continue” to resume.
The resumed session may lose continuity or fail to continue from the exact previous point.

This happens repeatedly and makes longer Cursor conversations unreliable. The problem is not limited to one specific model, prompt, or task type. It affects general chat as well as agent-style development sessions.

Please investigate why Cursor chat and agent sessions are frequently interrupted or stopped unexpectedly across all models.

Steps to Reproduce

Open Cursor.
Start a new chat or agent session.
Ask the assistant to perform a normal multi-step development task, such as analyzing files, explaining code, or working through a project issue.
Continue the conversation for several turns.
Try the same workflow across different available models.
The chat or agent session frequently stops unexpectedly before the response or workflow is completed.
Sending “continue” sometimes resumes the session, but the previous execution flow may be interrupted or lose continuity.

Operating System

MacOS

Version Information

Version: 3.5.38
VSCode Version: 1.105.1
Commit: 009bb5a3600dd98fe1c1f25798f767f686e14750
Date: 2026-05-26T21:32:06.537Z
Layout: editor
Build Type: Stable
Release Track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
OS: Darwin arm64 25.1.0

and
latest

Does this stop you from using Cursor

Yes - Cursor is unusable

Hey, thanks for the detailed report. What you’re describing, the assistant stops before it finishes, then you have to type continue and it loses continuity, is a known issue and it’s on our radar. I can’t share an exact timeline for a fix yet.

To link your case to the investigation, can you share a couple details?

  1. The Request ID from one of the interrupted responses: top-right chat menu (three dots) > Copy Request ID. If Privacy Mode is on, the Request ID might not be saved. If that happens, let me know if you have it enabled in Cursor Settings > Privacy.
  2. Please run Cursor Settings > Network > Run Diagnostics and send the results. In some similar reports we’re seeing the stream drop due to network issues, which can trigger a false interruption, so I want to rule out a network factor.

Temporary workaround: if your connection is unstable, try enabling Disable HTTP/2 in App Settings, open settings with Cmd+Shift+, then search for HTTP/2. This often helps on corporate networks, VPNs, and proxies where stream drops happen.

Let me know how it goes.

Thanks. Here are the details you requested.

Request ID from an interrupted response:

1d28851d-6e60-48f6-a712-fafef06b42cb

Privacy Mode:

[Enabled / Disabled]

HTTP/2 status:

I have already enabled “Disable HTTP/2” in Cursor settings.

Additional environment detail:

The issue occurs both when using Cursor locally and when using Cursor with a remote-server Linux environment.

Cursor Network Diagnostic Results:

DNS: Success
Logs:
  [2026-06-08T09:46:28.396Z] Host: api2.cursor.sh
  [2026-06-08T09:46:28.396Z] Servers: 114.114.114.114
  [2026-06-08T09:46:28.396Z] Resolved to 198.18.0.19 in 6ms
  [2026-06-08T09:46:28.404Z] Resolved to 198.18.0.19 in 4ms
  [2026-06-08T09:46:28.406Z] Resolved to 198.18.0.19 in 2ms
  [2026-06-08T09:46:28.417Z] Resolved to 198.18.0.19 in 2ms
  [2026-06-08T09:46:28.419Z] Host: api2.cursor.sh
  [2026-06-08T09:46:28.419Z] Servers: system
  [2026-06-08T09:46:28.419Z] Resolved to 198.18.0.19 in 2ms
  [2026-06-08T09:46:28.419Z] Resolved to 198.18.0.19 in 0ms
  [2026-06-08T09:46:28.420Z] Resolved to 198.18.0.19 in 0ms
  [2026-06-08T09:46:28.420Z] Resolved to 198.18.0.19 in 0ms
  [2026-06-08T09:46:28.420Z] Result: true

SSL: Success
Logs:
  [2026-06-08T09:46:28.373Z] Start
  [2026-06-08T09:46:29.053Z] URL: https://api2.cursor.sh/
  [2026-06-08T09:46:29.053Z] Status: 200
  [2026-06-08T09:46:29.053Z] IP: 198.18.0.19
  [2026-06-08T09:46:29.053Z] Issuer: C=US; O=Amazon; CN=Amazon RSA 2048 M01
  [2026-06-08T09:46:29.053Z] Name: api2.cursor.sh
  [2026-06-08T09:46:29.053Z] AltName: DNS:api2.cursor.sh, DNS:prod.authentication.cursor.sh, DNS:*.api2.cursor.sh
  [2026-06-08T09:46:29.053Z] DNS Time: 6ms
  [2026-06-08T09:46:29.053Z] Connect Time: 25ms
  [2026-06-08T09:46:29.053Z] TLS Time: 423ms
  [2026-06-08T09:46:29.053Z] Result: true in 680ms

API: Success
Logs:
  [2026-06-08T09:46:28.374Z] Start
  [2026-06-08T09:46:29.068Z] Result: true

Ping: Success
Logs:
  [2026-06-08T09:46:28.374Z] Sending ping 1
  [2026-06-08T09:46:29.063Z] Response: 'ping' in 689ms
  [2026-06-08T09:46:29.063Z] Sending ping 2
  [2026-06-08T09:46:29.815Z] Response: 'ping' in 752ms
  [2026-06-08T09:46:29.815Z] Sending ping 3
  [2026-06-08T09:46:30.623Z] Response: 'ping' in 808ms
  [2026-06-08T09:46:30.623Z] Sending ping 4
  [2026-06-08T09:46:31.282Z] Response: 'ping' in 659ms
  [2026-06-08T09:46:31.282Z] Sending ping 5
  [2026-06-08T09:46:32.005Z] Response: 'ping' in 723ms
  [2026-06-08T09:46:32.005Z] Result: true

Chat: Success
Logs:
  [2026-06-08T09:46:28.375Z] Starting streamSSE
  [2026-06-08T09:46:29.069Z] Response: 'foo' in 693ms
  [2026-06-08T09:46:30.106Z] Response: 'foo' in 1037ms
  [2026-06-08T09:46:31.066Z] Response: 'foo' in 960ms
  [2026-06-08T09:46:32.072Z] Response: 'foo' in 1006ms
  [2026-06-08T09:46:33.067Z] Response: 'foo' in 994ms
  [2026-06-08T09:46:34.099Z] Result: true

Agent: Success
Logs:
  [2026-06-08T09:46:28.376Z] Starting stream
  [2026-06-08T09:46:28.376Z] Pushing first message
  [2026-06-08T09:46:29.161Z] Response: 'foo' in 785ms
  [2026-06-08T09:46:29.665Z] Pushing next message
  [2026-06-08T09:46:30.633Z] Response: 'foo' in 1472ms
  [2026-06-08T09:46:31.134Z] Pushing next message
  [2026-06-08T09:46:31.877Z] Response: 'foo' in 1244ms
  [2026-06-08T09:46:32.379Z] Pushing next message
  [2026-06-08T09:46:33.080Z] Response: 'foo' in 1203ms
  [2026-06-08T09:46:33.589Z] Pushing next message
  [2026-06-08T09:46:34.903Z] Response: 'foo' in 1823ms
  [2026-06-08T09:46:34.903Z] Result: true

Marketplace: Success
Logs:
  [2026-06-08T09:46:28.369Z] Host: marketplace.cursorapi.com
  [2026-06-08T09:46:28.789Z] Response in 421ms
  [2026-06-08T09:46:28.789Z] Response: 200 
  [2026-06-08T09:46:28.789Z] Response Type: cors
  [2026-06-08T09:46:28.789Z] Server: null
  [2026-06-08T09:46:28.789Z] Result: OK in 421ms

Authentication: Success
Logs:
  [2026-06-08T09:46:28.370Z] Host: prod.authentication.cursor.sh
  [2026-06-08T09:46:29.105Z] Response: 200  in 735ms

Authentication UI: Success
Logs:
  [2026-06-08T09:46:28.373Z] DNS lookup: authenticator.cursor.sh
  [2026-06-08T09:46:28.399Z] Resolved authenticator.cursor.sh to 198.18.1.89 in 19ms

Cursor Tab: Success
Logs:
  [2026-06-08T09:46:28.373Z] DNS lookup: api3.cursor.sh
  [2026-06-08T09:46:28.398Z] Resolved api3.cursor.sh to 198.18.0.20 in 19ms

Agent Endpoint: Success
Logs:
  [2026-06-08T09:46:28.373Z] DNS lookup: agent.api5.cursor.sh
  [2026-06-08T09:46:28.399Z] Resolved agent.api5.cursor.sh to 198.18.1.110 in 19ms

Codebase Indexing: Success
Logs:
  [2026-06-08T09:46:28.373Z] DNS lookup: repo42.cursor.sh
  [2026-06-08T09:46:28.399Z] Resolved repo42.cursor.sh to 198.18.1.111 in 19ms

Downloads: Success
Logs:
  [2026-06-08T09:46:28.372Z] Host: downloads.cursor.com
  [2026-06-08T09:46:29.149Z] Response: 403  in 777ms

CDN: Success
Logs:
  [2026-06-08T09:46:28.372Z] Host: cursor-cdn.com
  [2026-06-08T09:46:28.951Z] Response: 404  in 579ms

Thanks for the detailed diagnostics, it clears up a lot.

Take a look at the DNS resolving in the logs: all Cursor domains are resolving to addresses in the 198.18.x.x range:

api2.cursor.sh           -> 198.18.0.19
authenticator.cursor.sh  -> 198.18.1.89
api3.cursor.sh           -> 198.18.0.20
agent.api5.cursor.sh     -> 198.18.1.110
repo42.cursor.sh         -> 198.18.1.111

198.18.0.0/15 is a reserved technical range that proxy and VPN clients like Clash, Surge, V2Ray, and similar tools use in fake IP mode. That means all Cursor traffic is currently going through a local proxy. Quick checks in Run Diagnostics can pass, but long streaming connections and agent responses are exactly that often get cut off by these proxies due to timeouts or node switching. From the outside, it looks exactly like your symptom: the response stops halfway through, you have to type continue, and continuity is lost.

What to check, in order:

  1. Test without the proxy: temporarily disable the proxy or VPN completely and see if the cutoffs still happen. This is the fastest way to confirm the cause.
  2. If you need the proxy, set up direct routing rules for Cursor domains so they do not go through fake IP: *.cursor.sh, *.cursor.com, *.cursorapi.com. Then streaming should go directly and stop breaking.
  3. You already disabled HTTP/2, keep it disabled. That is the right direction.

We do know about the symptom of false interruption after a completed response, and it is being tracked. There is no exact ETA for a fix yet. But in your case, the logs point to a network factor, so start with step 1 and let me know if it still happens without the proxy.