Cloud Project: canvas tsx opens as source; Preview 127.0.0.1 ERR_EMPTY_RESPONSE while VM origin is 200

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Two Cloud Agents / Project hosting bugs on the same run. Origins were healthy; IDE surfaces were not.

Canvas does not render in Projects. Write-tool canvas compiled (canvas.json compiledAt set). Chat link to source.canvas.tsx still opens a TypeScript editor tab (header: Establishing connection). Same for the Agent Store file and canvas.bundle.gz. Canvas id 018bb94d-22d9-4db4-bba3-1b086f380564.

Preview port-forward is dead. On the agent VM, curl to 127.0.0.1 PORT returned HTTP 200 (~130KB). Preview in the IDE: connection reset / ERR_EMPTY_RESPONSE / error -324. Same on ports 43179 and 45431. Restarting the server, 0.0.0.0 bind, dual-stack HTTP/1.1 did not help. usePrivateWorker false.

Run: https://cursor.com/agents/bc-73787985-3c63-4836-b0d6-8e3a61e3d8c7
Request ID: 0fd4a5d2-1ca1-4306-8d8d-b6908bb8503f
OS: macOS. Cursor version: paste from Cursor → About Cursor.

Steps to Reproduce

Canvas: In a Cloud Agent Project, create a canvas at the user canvases uuid source.canvas.tsx path (compile succeeds). Put a markdown link to that file in chat. Click the link or open it from Agent Store in the Project tree. Result: source editor, not the canvas UI.

Preview: On the agent VM serve HTTP 200 on 0.0.0.0 PORT (confirm with curl on the VM). Emit a Preview card for 127.0.0.1 PORT. Open Preview from the IDE. Result: ERR_EMPTY_RESPONSE / connection reset / -324.

Expected: canvas runtime; Preview shows the VM page. Actual: code tab; empty Preview. No other links.

Operating System

MacOS

Version Information

Version: 3.21.16
VS Code Extension API: 1.128.0
Commit: 8ae78e8eee1e63479c7e0504b664bc0a80c68000
Date: 2026-09-19T06:43:22.276Z
Layout: Agent Window
Build Type: Stable
Release Track: Nightly
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: Darwin arm64 25.5.0

Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

Hey @cecilialee, thanks for the detailed report and the run ID, it made this quick to trace.

These are two separate things.

Canvas: the in-app canvas viewer for Cloud Agents and Projects is not generally available yet. The agent can create and compile the canvas, but the Agents Window will open the .canvas.tsx as a regular file for now. This is a known gap we’re tracking, and I’ve added your report to it.

Preview: the machine behind your Project was replaced when you saved the environment snapshot (that’s why your server came back 200 on the VM). The Agents Window kept talking to the old machine, which is why Preview returned an empty response and the file tab sat on “Establishing connection”. I’ve flagged this to the team.

To recover right now: press Cmd+Shift+P, run “Developer: Reload Window” (or quit and reopen Cursor), open the Project again, then click the Preview card. Could you confirm whether Preview loads after that?

If you can reproduce it once more, that would help a lot:

  1. Open a Project in the Agents Window and confirm the Files tab loads.
  2. Ask the agent to start any HTTP server and emit a Preview link, and confirm Preview works.
  3. Save the environment snapshot from the Project.
  4. After the next agent turn, click the Preview card again.
  5. Does Preview fail and the file tab show “Establishing connection”? Then run “Developer: Reload Window” and click Preview again. Please reply with what you see at steps 4 and 5 and the run ID.

I asked a subagent to run this up front, on a new Cloud Project run, before I touched the Agents Window.

Run: bc-dea8b516-2389-554a-bc05-7e72a927e969 https://cursor.com/agents/bc-dea8b516-2389-554a-bc05-7e72a927e969

Environment 6fc432cb-b4ae-11f1-bb68-864e54d14197 (personal). Pod booted from build/snapshot bld-20260928-5268d901-1fc8-4f63-a5cf-0c7b6c5115a5 (warm_fork, git setup reuse). Original report run was bc-73787985-3c63-4836-b0d6-8e3a61e3d8c7.

The subagent could check the VM. It could not drive the Agents Window, so I still cannot say the Preview bug is fixed.

Canvas. The old canvas is still on disk and compiled (compiledAt 2026-09-20T05:22:39.665Z, title “Jev use-case scores (42 live)”, canvas.bundle.gz 351853 bytes):

User Context/canvases/018bb94d-22d9-4db4-bba3-1b086f380564/source.canvas.tsx

It did not open that file in the Agents Window, so it did not see whether it opens as a canvas or as source. Nothing was listening on the old canvas URL http://127.0.0.1:43147/ (connection refused).

1. Files tab. Not observed. The subagent has no Agents Window. On the VM, /workspace does have README.md, package.json, src/, and jev/2026-09-20-jev-use-case-scores.canvas.tsx.

2. HTTP server and Preview link. It started python3 /tmp/preview-bug-server.py in tmux session preview-http, bound to 0.0.0.0:47621. Preview link: http://127.0.0.1:47621/

Body is 244 bytes, Content-Type: text/html; charset=utf-8, marker MARKER-preview-bug-47621.

URL Result
http://127.0.0.1:47621/ HTTP 200, 244-byte HTML
http://localhost:47621/health HTTP 200, client 127.0.0.1
http://172.30.0.2:47621/from-pod-ip HTTP 200, client 172.30.0.2
http://cursor:47621/from-hostname HTTP 200
http://[::1]:47621/from-v6 connection refused (IPv4-only)
http://127.0.0.1:43147/ connection refused

Headless Chrome 148 --dump-dom of http://127.0.0.1:47621/ returned that document. Server log: HeadlessChrome/148.0.0.0 GET / from 127.0.0.1 at 2026-09-28T15:43:57Z.

Desktop Chrome 148 on the VM loaded http://127.0.0.1:47621/ and showed preview-bug-probe, MARKER-preview-bug-47621, and “If you can read this, the HTTP response body arrived.” No Chrome error page. Server log: Chrome/148.0.0.0 GET / from 127.0.0.1 at 2026-09-28T15:45:47Z.

The same desktop Chrome then opened http://172.30.0.2:47621/from-pod-ip and showed the same three lines. No ERR_EMPTY_RESPONSE.

The Agents Window Preview card was not clicked. There is no Cursor IDE window on that VM.

3. Save the environment snapshot. Not done. That control is in the Project UI. It did not call the setup-disk snapshot tool, since that is a different action. This pod was already a warm fork of bld-20260928-5268d901-1fc8-4f63-a5cf-0c7b6c5115a5.

4 and 5. Preview after the next turn, then Reload Window. Not done. Nobody clicked a Preview card. “Establishing connection” was not seen. Developer: Reload Window was not run.

Bottom line. Requests that reach this VM’s 127.0.0.1:47621 get HTTP 200 and the HTML body, in curl, headless Chrome, and desktop Chrome. The subagent could not test the failure you described: the desktop client still attached to the previous machine after a Project snapshot save. Steps 1, 3, 4, and 5 need the Agents Window.

Hey @cecilialee, thanks for running that. It confirms the server side of your new Project is healthy, so the piece we still need is what the Agents Window itself does.

On canvas: nothing has changed yet. The in-app canvas viewer for Cloud Agents and Projects still isn’t generally available, so the file will keep opening as source for now.

For Preview, could you try this on your new run (bc-dea8b516-2389-554a-bc05-7e72a927e969)?

  1. Open Cursor and open that Project in the Agents Window.
  2. Check that the Files tab loads.
  3. Ask the agent: “Make sure the server on port 47621 is running and give me a Preview link for http://127.0.0.1:47621/”.
  4. Click the Preview card. Does the test page load?
  5. Save the environment snapshot from the Project.
  6. Send the agent any short message and wait for it to finish.
  7. Click the Preview card again. Does it load, or do you get an empty response? Does a file tab show “Establishing connection”?
  8. If it fails, press Cmd+Shift+P, run “Developer: Reload Window”, reopen the Project, and click Preview again.

Please reply with what you see at steps 4, 7, and 8.