Where does the bug appear: Cursor IDE
Describe the Bug:
cursor-server (remote SSH) hangs permanently showing “waiting for connection” during long agent sessions. logs reveal two distinct crash modes:
- Error in consumeStream via Fetch.terminate in node’s undici - upstream streaming connection dropped
- [composer] No loaded composer found - local composer garbage-collected while a long streaming response was in flight on the remote
after either crash, the agent UI hangs indefinitely. only recovery is starting a new conversation.
Steps to Reproduce:
- connect to a remote linux machine via Cursor SSH (cursor-server)
- use agent mode with tool calls (shell, read, glob, str_replace)
- work in a single conversation past ~75 messages
- cursor hangs, shows “waiting for connection” permanently
- starting a new conversation recovers immediately
conversation state growth from logs (~/.cursor-server/data/logs//exthost/anysphere.cursor-agent-exec/Cursor Agent Exec.log):
reproduces consistently: 10+ crashes across 3 sessions in 2 days.
Expected Behavior:
cursor should either handle large conversation state gracefully (trim/compress older messages) or surface an error message suggesting to start a new conversation, rather than hanging indefinitely with no feedback.
Operating System: Linux (GCP VM, remote SSH) + macOS (local client)
Version Information:
IDE:
Version: 3.4.20
VSCode Version: 1.105.1
Commit: 0cf8b06883f54e26bb4f0fb8647c9500ccb43310
Model: gpt-5.5 via custom OpenAI-compatible proxy endpoint (cli-gpt-5.5-xhigh-fast)
Additional Information:
- crash 1 stack trace: Fetch.onAborted → Fetch.terminate in node:internal/deps/undici/undici
- crash 2 stack trace: $localAgentSendInteractionUpdate → [composer] No loaded composer found in workbench.desktop.main.js
- no OOM kills in dmesg - RSS stays ~950MB, doesn’t trigger kernel OOM
- also found: worker.js missing from cursor-agent-exec/dist/ (separate issue, breaks PDF reads)
- workaround: rotate conversations every ~45 minutes / ~75 messages
Does this stop you from using Cursor: partially - have to restart conversations frequently, losing context
