Title: Window crashes/exits instantly (silent, no error) when maximized on an external HDMI monitor — Intel Arc, Windows 11

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

The Cursor window (frameless Agent/glass window; also IDE layout) crashes and exits INSTANTLY with NO error dialog whenever it is maximized — or otherwise made to fill — an external HDMI-connected monitor. It is 100% reproducible on the external monitor and NEVER happens on the built-in laptop panel.

The crash is completely silent: no in-app error, no Windows “Application Error” (Event ID 1000), no WER report, and no crashpad dump is generated for Cursor.

Setup: Intel Arc 140T GPU. External monitor = Philips 27E2N1500L, 2560×1440, HDMI direct, SDR/8-bit/RGB. Built-in panel = 2880×1800 @120Hz (HDR). Both at 125% scaling.

What triggers vs. not:

  • Maximize on external HDMI monitor → crash (100%)
  • Maximize on built-in laptop panel → no crash
  • External-primary vs laptop-primary → external still crashes either way
  • Maximize button / Win+Up snap / manual resize to fill → all crash

Already tried, none fixed it:

  1. disable-hardware-acceleration (software rendering) in argv.json
  2. Updated Intel Arc driver 32.0.101.8132 → 32.0.101.8860 (clean install + reboot)
  3. Lowered external refresh rate 75Hz → 60Hz
  4. Unified scaling (both 125%)
  5. Switched primary display between monitors
  6. All maximize methods (button / snap / manual)
  7. HDR ruled out (external is SDR; the HDR built-in panel does NOT crash)
  8. No DisplayLink / indirect display — direct HDMI

Likely related to a frameless BrowserWindow filling a specific external display output (cf. electron/electron#50040 silent-crash-on-Windows for frameless windows).

Steps to Reproduce

  1. Connect an external monitor via HDMI (2560×1440), scaling 125%.
  2. Move the Cursor window onto the external monitor.
  3. Maximize it (title-bar maximize button, Win+Up snap, drag-to-top, or manually resize to fill the screen).
  4. Cursor exits immediately with no error dialog and no crash report.

100% reproducible on the external HDMI monitor; never on the built-in laptop panel.

Expected Behavior

The window should maximize/fill the external monitor normally without crashing, just as it does on the built-in laptop panel.

Operating System

Windows 10/11

Version Information

Version: 3.12.30 (user setup)
Commit: 63a2996a10d9e476b6c28e951dd7691d9c0cf480
Date: 2026-07-21T22:50:03.568Z
VS Code Extension API: 1.128.0
Electron: 40.10.3
Chromium: 144.0.7559.236
Node.js: 24.15.0
V8: 14.4.258.32-electron.0
OS: Windows_NT x64 10.0.26200
GPU: Intel Arc 140T GPU (16GB), driver 32.0.101.8860
External monitor: Philips 27E2N1500L (2560×1440, HDMI)

For AI issues: which model did you use?

Claude Opus 4.8

Does this stop you from using Cursor

Yes - Cursor is unusable

Hi @chenj0890!

I can see that you also wrote in via e-mail, and we’ve filed a bug for this issue!

Cursor is currently on Electron 40.10.3, which contains this fix; unfortunately, it is probably not as simple as a dependency bump.

One thing worth trying: set "window.titleBarStyle": "native" in your VSCode settings and restart VSCode. It would be good to know if it’s indeed linked to “frameless” windows.

Update: I set “window.titleBarStyle”: “native” and fully restarted Cursor (quit the process, not just reload). The setting did take effect — the window now shows a native Windows title bar (File/Edit/View/Help menu bar on the left, native min/maximize/close controls on the right).

However, the crash STILL reproduces 100% when maximizing this window on the external HDMI monitor. So it does not appear to be solely the frameless title bar.

The window that crashes is the standalone Agent window. It crashes on maximize (and also on Win+Up snap / dragging to fill / manually resizing to fill the external monitor). It never crashes on the built-in laptop panel.

Recap of what has been ruled out (none fixed it):

  • disable-hardware-acceleration (software rendering)
  • Intel Arc driver update 32.0.101.8132 → 32.0.101.8860 (clean install + reboot)
  • External monitor refresh rate 75Hz → 60Hz
  • Unified display scaling (both 125%)
  • Switching primary display between monitors (external crashes either way)
  • All maximize methods (button / Win+Up / manual resize)
  • HDR ruled out (external is SDR; the HDR built-in panel does NOT crash)
  • Now also: window.titleBarStyle = native (native frame confirmed) still crashes

The crash is completely silent: no in-app error, no Windows Application Error (Event ID 1000) / WER report, and no crashpad dump for Cursor.

Environment: Cursor 3.12.30, Electron 40.10.3, Chromium 144.0.7559.236, Windows 11 (10.0.26200), Intel Arc 140T GPU (driver 32.0.101.8860). External: Philips 27E2N1500L, 2560×1440 over HDMI, 125% scaling; built-in panel 2880×1800 @120Hz.

Since it is specific to one external HDMI output and produces no crash log, would a specific log flag or a way to capture the crash (e.g. enabling a particular renderer/GPU log, or a crashpad setting) help you diagnose? Happy to provide whatever traces you need.

Two things would confirm where the issue is coming from:

1. Capture the exit code. First quit Cursor completely (make sure no Cursor.exe processes are left in Task Manager. Then launch it from PowerShell with verbose logging:

$p = Start-Process "$env:LOCALAPPDATA\\Programs\\Cursor\\Cursor.exe" -ArgumentList '--verbose','--enable-logging' -PassThru
*# reproduce the crash (maximize the Agent window on the external monitor), then:*
$p.WaitForExit(); $p.ExitCode

You should see log output mirrored into the PowerShell window. The last lines printed before the window dies are interesting, so please include them.

If the exit code prints 0, it’s a clean programmatic shutdown and the bug is in our window-management code, not the graphics stack. A large number like 3221225477 would point back at a native fault instead.

2. Grab the main process log from the same session. After reproducing, zip up the newest folder under %APPDATA%\Cursor\logs\

The main.log in there should show the shutdown sequence right at the moment of the close.

Result: it’s a CLEAN programmatic shutdown, not a native fault.

Start-Process couldn’t surface the exit code (empty, due to the GUI process handoff on Windows), but the main.log makes it unambiguous — the moment I maximize the (glass/frameless) Agent window on the external HDMI monitor, the window receives a close event and the app quits gracefully. No crash stack, no access violation, no crashpad dump.

Startup restored the window maximized on the external monitor:
window#ctor: using window state {“mode”:1,“x”:175,“y”:46,“width”:1773,“height”:1017,“glassMode”:true}
window#validateWindowState: multi-monitor working area {“x”:0,“y”:0,“width”:2048,“height”:1104}

Then at the moment of the crash:
Lifecycle#window.on(‘close’) - window ID 1
Lifecycle#unload() - window ID 1
Extension host with pid 7896 exited with code: 0
Extension host with pid 18844 exited with code: 0
Lifecycle#onBeforeCloseWindow.fire() - window ID 1
Lifecycle#app.on(window-all-closed)
Lifecycle#app.on(before-quit)
Lifecycle#app.on(will-quit) - calling app.quit()

So this lines up with your “exit code 0 → window-management bug, not the graphics stack” case. It looks like maximizing the glass/frameless window on this specific external display triggers a window close → app quit in the window-management code, rather than a GPU/native crash. Note it also still happens with window.titleBarStyle = native.

Full main.log + verbose output attached.

(attachments)

cursor-crash-report.zip (201 KB)

So based on the exit code, definitely doesn’t look like a GPU crash.

It’s not Cursor quitting itself either, though. The unload runs as onBeforeUnload (reason: 1), which means “window closed” rather than “app quitting” — the window-all-closed / before-quit / app.quit() lines after it are just what happens once the last window is gone. And window.on('close') looks identical whether the request came from the close button, Alt+F4, or the OS, so it doesn’t tell us the app closed itself.

What does tell us something is the ordering. Last command Cursor runs, in window1_wb0/renderer.log:

15:55:26.642 [trace] CommandService#executeCommand cursor.updateGlassWindowsWindowControls

and then in main.log:

15:55:27.213 [trace] Lifecycle#window.on('close') - window ID 1

That command repositions the window buttons, and it runs because you maximized. There’s no close or quit command anywhere between the two, so the close request arrived from outside the app 570ms after the buttons moved.

My theory: on Windows the Agents window doesn’t draw its own minimize/maximize/close buttons (those are the OS-drawn ones), and their position gets recalculated on every maximize. If their clickable areas end up offset from where they’re painted on your display, the click you meant for Maximize lands on Close, which would look exactly like this.

A few things that would confirm or kill it. Try maximizing with Win+Up instead of clicking. If that’s fine, it’s a click-target problem rather than anything about maximizing. Then set “window.controlsStyle”: “custom” and fully restart; that hides the window buttons on Windows, so you’d double-click the title bar to maximize and Alt+F4 to close, but if the crash stops we know it’s them. And does the regular editor window do it too, or only the Agents window?

Let me know!

Update on your theory: it’s NOT a click-target problem, and window.controlsStyle didn’t help either.

Results:

  1. Win+Up (keyboard, no button click at all) ALSO crashes the Agent window. So it can’t be an offset hit-area on the OS-drawn buttons.
  2. Set “window.controlsStyle”: “custom”, fully restarted — still crashes.
  3. Earlier “window.titleBarStyle”: “native” — also still crashes.

Clear pattern across everything we’ve tried:

  • ONLY the glass/Agent window crashes; the regular IDE/editor window NEVER crashes.
  • It crashes on maximize via ANY method (maximize button, Win+Up, drag-to-top, manual resize to fill).
  • 100% reproducible ONLY on the external HDMI monitor (Philips 27E2N1500L, 2560×1440, 125%); never on the built-in laptop panel.
  • Log shows a clean close/quit (onBeforeUnload reason:1, exit code 0), and the last command before the close is cursor.updateGlassWindowsWindowControls, which runs on every maximize.

Already ruled out (none fixed it): hardware acceleration on/off, Intel Arc driver update (8132 → 8860), refresh rate 75->60Hz, unified scaling (both 125%), switching primary display, HDR (external is SDR), titleBarStyle: native, controlsStyle: custom.

So this looks like a bug in the glass/Agent window maximize handling (around updateGlassWindowsWindowControls) that only triggers on this external display. It appears to be code-side rather than anything configurable on my end. Let me know if there’s anything else you’d like me to capture.

Thanks for checking @chenj0890

Next suspect: on Windows the Agents window uses a Mica backdrop (the translucent Windows 11 material) and the regular editor window doesn’t. That’s the cleanest difference between the two, and it goes through DWM rather than Chromium’s GPU path, which would explain why hardware acceleration and the driver update didn’t help.

Could you switch to one of the high-contrast Cursor themes (Cursor Settings → Appearance → Theme) and try again? That would be a big clue!

Confirmed the Agent window background DID become fully opaque with the high-contrast theme (the translucency/Mica is gone), and it STILL crashes on maximize / Win+Up on the external HDMI monitor. So this rules out the Mica/translucent backdrop as the cause.

Recap of the pattern (unchanged): only the glass/Agent window crashes (the IDE window never does), on ANY maximize method (button, Win+Up, drag-to-top, manual resize to fill), and ONLY on this external HDMI display (Philips 27E2N1500L, 2560×1440, 125%). The logs still show a clean close/app.quit (exit code 0 semantics), not a native/GPU crash.

Ruled out so far: hardware acceleration on/off, Intel Arc driver 8132→8860, refresh 75→60Hz, unified scaling, primary-display swap, HDR, titleBarStyle: native, controlsStyle: custom, and now high-contrast/opaque (Mica) too.

Happy to capture anything else that would help narrow it down.

That rules out Mica too, and confirming the background went opaque!

I’m running low on theories. Three asks, if you have the patience:

  • Try launching with a clean profile and no extensions: cursor --disable-extensions --user-data-dir C:\temp\cursor-test. You have a fair few MCP servers and hooks, and one can drive the app directly, so this rules out that whole surface at once.

  • Set the Philips display to 100% scaling and retry. You tried both displays at 125%, but 100% changes the maximized window’s logical size a lot, telling us whether this is about size or the display itself.

  • Grab a fresh log bundle. Everything so far came from that first capture, and your config has changed several times since; I’d like to see if the tail still looks the same!