Canvas never renders in 3.7.27 (macOS arm64) — esbuild-wasm build worker exits immediately ("The service is no longer running" / "The service was stopped")

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

After updating to 3.7.27, no canvas renders at all. Every .canvas.tsx shows the panel “Canvas needs to be updated” with the detail “The service was stopped”. This affects every canvas in the workspace, not a specific file.

The canvas server starts fine — the failure is the esbuild-wasm build worker exiting immediately (build fails in ~10 ms). This is NOT the theming/color regression in 3.6→3.7; the canvas never builds, so it never reaches rendering.

Extension Host logs (Output → “Cursor Agent Exec”)

Every time a canvas is opened:

[info]    Canvas server started {"port":50230,"startDurationMs":151}
[info]    Registered canvas {"path":".../wellstreet-phone-dob-scenarios-report.canvas.tsx","canvasId":"fad23e8b71a3"}
[warning] Canvas build service disconnected; restarting esbuild and retrying {"error":"The service is no longer running"}
[warning] Canvas build retry failed after recovery {"recoveryResult":"performed-restart","error":"The service was stopped"}
[warning] Canvas build failed {"diagnosticsSummary":"The service was stopped","buildDurationMs":10}

The first error is esbuild’s "The service is no longer running", i.e. the worker running the WASM exits right after start. Cursor restarts it, it dies again, and the result is "The service was stopped". buildDurationMs is 10–128 ms, so it fails before processing the file.

What I verified

  • Not the canvas content: the .canvas.tsx type-checks clean and imports only from cursor/canvas.
  • Not the machine / WASM: I ran the exact bundled esbuild-wasm (v0.25.9, from Cursor.app/.../extensions/node_modules/esbuild-wasm) standalone in Node — it compiles the WASM module and runs esbuild.transform successfully:
const esbuild = require(".../esbuild-wasm/lib/main.js");
const out = await esbuild.transform("const x: number = 1; export default x;", { loader: "ts" });
// => "const x = 1;\nexport default x;\n"  ✅ works fine outside Cursor
  • Not the network / localhost: the canvas server starts on its port; this is not the ERR_ADDRESS_INVALID / loopback-blocked case.

What I already tried (no effect)

  • Developer: Reload Window
  • Full quit & relaunch (Cmd+Q)
  • Full computer reboot
  • Re-saving / regenerating the canvas

Steps to Reproduce

  1. Update to Cursor 3.7.27 on macOS (Apple Silicon).
  2. Open any .canvas.tsx.
  3. Canvas shows “Canvas needs to be updated” / “The service was stopped”; build fails in ~10 ms.

Expected Behavior

The esbuild-wasm build worker stays alive and the canvas compiles and renders, as it did before the 3.7.27 update.

Operating System

MacOS

Version Information

  • Cursor 3.7.27, commit e48ee6102a199492b0c9964699bf011886708ba0, build date 2026-06-10T01:46:16Z
  • Extension host Node: v22.22.1
  • Bundled esbuild-wasm: 0.25.9

Additional Information

Happy to provide DevTools console output or full extension-host logs. The build worker exits with no further stack beyond esbuild’s generic messages — if there’s a way to surface the worker’s exit reason / stderr, point me to it and I’ll attach it.

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey @Jon_Silva!

Thanks for the report. This is a known regression and is broken for users whose node on PATH is a version managed shim (like mise or nvm)

It should be fixed in 3.8, due out this week.