Canvas not loading

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

The canvas server isn’t loading for me, in either agent or legacy ide view. The source, however exists. Here’s cursor’s take

You’re right, the canvas wasn’t being served.

I simplified and resaved stage-4-migration-assessment.canvas.tsx to rule out a canvas code/runtime issue. Then I tested the exact HAR URL from the shell:

curl could not connect to localhost:52142, so this is a local Cursor canvas preview server issue, not just a bad canvas render. Also, no .canvas.status.json sidecar was generated, which supports that the canvas server never built/served it.

Steps to Reproduce

create a canvas

Expected Behavior

canvas renders.

Operating System

MacOS

Version Information

Version: 3.4.17
Commit: 93e603f703cd553a6bb3644711a3379bbbb31180
Date: 2026-05-13T21:39:55.724Z
Layout: editor
Browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Cursor/3.4.17 Chrome/142.0.7444.265 Electron/39.8.1 Safari/537.36

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, thanks for the report. It looks like the local canvas preview server isn’t starting at all, so curl can’t connect and .canvas.status.json never shows up. To figure out where it’s failing, I’ll need a couple of artifacts:

  1. Extension host logs: open the Output panel via View > Output, then pick Extension Host in the dropdown. Send the contents, or at least all warning and error lines, especially anything related to cursor-agent-exec, canvas, or esbuild.
  2. Developer Tools console: go to Help > Toggle Developer Tools, then the Console tab. Share a screenshot of any errors that show up when you try to open the canvas.
  3. Also check: if you restart Cursor and then immediately try to open a .canvas.tsx, does the canvas server start or not? Does it happen with any canvas file, or only a specific one?

With those logs, we can narrow down exactly which step is breaking, extension activation, esbuild-wasm initialization, or a provider timeout.

Hi @deanrie, the only error was in the devtools (shown below). I can’t get anything to upload for some reason. Restarting and opening immediately did not work either.

workbench.desktop.main.js:47494 Unexpected error while loading URL Error: Error invoking remote method 'GUEST_VIEW_MANAGER_CALL': Error: ERR_ADDRESS_INVALID (-108) loading 'http://localhost:61360/canvas/f39488f46197/?token=492990b…

@deanrie checking in to see if that was sufficient or if you need more info. Unsure if it matters but I’m on an enterprise account behind a corporate vpn

Hey, thanks for the update. The logs helped and the picture is clearer now.

In the original report, the canvas server didn’t start at all, curl failed, and there was no .canvas.status.json. But in this DevTools error I can already see http://localhost:61360/canvas/.../?token=..., which means the server did start and is listening on port 61360, but the webview can’t reach it. Chromium returns ERR_ADDRESS_INVALID (-108), which usually means the address is being blocked by proxy config, or localhost is resolving incorrectly.

Given your note about a corporate VPN, this looks like a very common scenario. A VPN client or SSL inspection proxy like Zscaler, Netskope, GlobalProtect, or a PAC file can route loopback traffic through a proxy, and that proxy won’t allow requests to localhost.

To confirm:

  1. Fully turn off the VPN, restart Cursor, then try opening canvas again. This is the main smoke test. If it works without the VPN, the cause is network policy.
  2. If you can’t disable the VPN, run these in a terminal:
    • nslookup localhost it should resolve to 127.0.0.1
    • curl -v http://127.0.0.1:61360/ use the actual port from the error. This checks what you get when you hit the IP directly and bypass localhost resolution
  3. In Cursor Settings > Network, is there any HTTP proxy set explicitly? If yes, try removing it temporarily and restart.
  4. Which VPN or proxy client is used on the machine, if you know the name?

Also, you mentioned the extension host logs won’t upload. If you can, paste the last 50 to 100 lines from Output > Extension Host here in a code block, filtered for canvas, cursor-agent-exec, or esbuild. If the file is too big, a gist or pastebin link works too.

Hey, so it started working consistently. I’ve updated a few times and can’t say which update, if any, fixed it.