Cursor IDE Crash on new window

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

When opening a new cursor window the next day, cursor new window crash

Steps to Reproduce

Work with cursor one day with multiple window, open a new window next day and get the crash “The window terminated unexpectedly, crashed code 6”

Expected Behavior

Cursor should not crash, with new window on the next day of work

Screenshots / Screen Recordings

Operating System

MacOS

Version Information

Version: 3.14.7
VS Code Extension API: 1.128.0
Commit: a758f2241ca99fecf380180b6cbdbbce0f1f42c0
Date: 2026-07-30T06:41:34.009Z
Layout: IDE
Build Type: Stable
Release Track: Default
Electron: 40.10.3
Chromium: 144.0.7559.236
Node.js: 24.15.0
V8: 14.4.258.32-electron.0
xterm.js: 6.1.0-beta.291
OS: Darwin arm64 25.5.0

Does this stop you from using Cursor

Yes - Cursor is unusable

Hey, thanks for the detailed report. Sending the version and a screenshot right away really helps. Code 6 on macOS is SIGABRT, and based on the symptoms this looks like a different type of issue than the other crash reports, so I want to dig into your specific case.

To figure out what’s actually crashing, I need a couple things:

  1. Crash report. Open Console.app → on the left, go to Diagnostic Reports (Crash Reports), find the newest file like Cursor Helper (Renderer)-*.ips with the time of the last crash, and attach it here. That file will show where the abort happens.
  2. When the new window crashes, do the windows that are already open keep working, or does everything crash?
  3. If you fully quit with Cmd+Q and reopen Cursor, do the crashes stop for the rest of the day, or does the new window still crash?

Once I have those answers it’ll be much clearer where to look. Send the .ips and we’ll dig in.

@deanrie Only crashing when opening a new window, other windows working correctly.

I modified the extension because the forum does not support .ips file

Cursor Helper (Renderer)-2026-08-04-093217.txt (8,3 Ko)

Thanks for the .ips and the confirmation, that really helps.

I looked into the crash. It happens during the very earliest window init, SIGABRT (code 6) right at renderer startup. The process lives for under a second, and there are no V8 or Chromium frames in the stack. So this looks like a different type of issue than the OOM crashes users report in other threads. The fact that already-open windows keep working and only newly opened ones crash also matches this, it points to a problem spawning a new process, not the main app.

This looks like a launch-time issue, maybe related to the app bundle state after an update. Let’s check two things:

  • Does a full quit with Cmd+Q and relaunching Cursor help? After that, do new windows stop crashing for the rest of the day, or does a new window still crash?
  • If restarting doesn’t help, try a clean reinstall: fully quit Cursor, download a fresh 3.14.7 from Cursor · Download, replace /Applications/Cursor.app with the new copy, and launch again. This fixes cases where the bundle ended up in an inconsistent state after an update.

Let me know which one worked, and whether a new window still crashes after reinstall. That’ll tell us where to dig next.

A full Cmd + Q closing all window and reopen fix the issue, i dont this yesterday, it fix the issue for the day.

But the issue appeared again this morning this is why i opened this ticket.

We can see tomorrow if new window crash again

@deanrie new window do not crash today, i think we can resolve the thread here

Version: 3.14.7
VS Code Extension API: 1.128.0
Commit: a758f2241ca99fecf380180b6cbdbbce0f1f42c0
Date: 2026-07-30T06:41:34.009Z
Layout: IDE
Build Type: Stable
Release Track: Default
Electron: 40.10.3
Chromium: 144.0.7559.236
Node.js: 24.15.0
V8: 14.4.258.32-electron.0
xterm.js: 6.1.0-beta.291
OS: Darwin arm64 25.6.0

Hey,
Im still getting this error.

note:
After cmd + Q I could open a new window but the third window still getting this error. (so after CMD + Q I can open max 2 windows).

Hey @Tohar_Harush, thanks for the details. The part about “max 2 windows, the third one crashes” is interesting. That’s different from what the thread author had, and it sounds like a repeatable trigger, so I want to focus on your case.

I need a couple things:

  1. Crash report. Open Console.app → on the left Diagnostic Reports (Crash Reports) → find the newest file like Cursor Helper (Renderer)-*.ips with the time of the latest crash. The forum won’t accept .ips, so rename it to .txt and attach it here. This file will show where exactly the abort happens.

  2. Please confirm the pattern. Does the third window crash every time, consistently? And after Cmd+Q, does the counter reset again so you can open 2 windows, and the third one crashes?

  3. Anything special in your setup like lots of extensions, MCP servers enabled, git worktrees, a big workspace? Does the third window open normally if you start Cursor with cursor --disable-extensions?

With the .ips and your answers it’ll be much clearer where to dig. Send the file and we’ll take a look.

Scratch what I said about 2 windows, I had that wrong. My colleague got 4 before it broke. And it’s not really about the number of windows at all, it’s time. After Cmd+Q I can open a window fine, then a few minutes later nothing opens, even with zero windows open. So something is filling up while the app runs.

I think it’s file descriptors. Checked the main process after about 5 hours of uptime:

```

unique numeric fds : 10000

lowest : 0

highest : 9999

gaps in 0..9999 : 0

fds >= 10000 : 0

```

0 through 9999, contiguous, nothing above. That’s a full table. No free fd for a new renderer’s sandbox socket.

Which lines up with where it dies. Here’s the relevant part of the crash, this is the 11:11 one but all four from this morning are the same:

```

procName = Cursor Helper (Renderer)

parentProc = Cursor

osVersion = macOS 26.6 (25G72)

cpuType = ARM-64

procLaunch = 2026-08-05 11:11:52.5483 +0300

captureTime = 2026-08-05 11:11:53.1741 +0300

exception = {“type”:“EXC_CRASH”,“signal”:“SIGABRT”,“codes”:“0x0, 0x0”}

termination = {“namespace”:“SIGNAL”,“code”:6,“indicator”:“Abort trap: 6”,

           "byProc":"Cursor Helper (Renderer)"}

faulting thread 0:

0 __pthread_kill libsystem_kernel.dylib

1 pthread_kill libsystem_pthread.dylib

2 abort libsystem_c.dylib

3 abort_report_np libsystem_c.dylib

4 <helper stub +40300>

5 <helper stub +40196>

6 start dyld

threads = 1

images = 11

Electron Framework 40.10.3

```

Dead 0.6s after launch. 1 thread, 11 loaded images. A working renderer on this machine has 126 threads, so this is gone well before Chromium loads. Your log agrees:

```

2026-08-05 11:11:53.174 [error] CodeWindow: renderer process gone (reason: crashed, code: 6)

```

The renderer helper is a small stub, 221KB, that sets up the seatbelt sandbox and hands off to ElectronMain. Only abort paths I can find in it are sandbox related:

```

Failed to create seatbelt sandbox server.

Failed to initialize sandbox.

SandboxSerializer: Failed to apply compiled policy: %s

SeatbeltExec: %s %s failed

```

Sandbox setup needs an fd, there isn’t one, so it aborts before doing anything else. That’s my read anyway, frames 4 and 5 are in the stub so I can’t symbolize them exactly.

Where the fds went: 13,000+ pointing into my project dir, across ~10,000 distinct paths. Ordinary source subdirectories, not files I have open. Log is also full of these in bursts:

```

[warning] [File Watcher (node.js)] Watcher shutdown because watched path got deleted

[warning] [File Watcher (node.js)] Watcher shutdown because watched path got deleted

[warning] [File Watcher (node.js)] Watcher shutdown because watched path got deleted

```

Guessing watchers get torn down and recreated as our build writes into the tree, and descriptors don’t get closed on the way out. Would explain why my colleague and I hit it at different window counts (depends on project size and churn), why quitting fixes it, and why it comes back a few minutes later.

Not memory. 64GB, 52% free when it crashed. Not a broken install either, codesign passes clean on the app and the helper.

I have 43 extensions so --disable-extensions is a reasonable thing to ask, but I didn’t test it properly. A short test passes no matter what since the leak takes minutes to build. Can run it longer if you want.

```

Cursor 3.14.7

Electron 40.10.3

macOS 26.6 (25G72), arm64, 64GB

Project large monorepo, ~47k files, one worktree

Extensions 43, 1 MCP server

Crashes 33 renderer crashes since Aug 2, 25 of those on Aug 3

```

Worth flagging: managed work laptop with EDR running a network monitoring system extension plus a couple of other agents. EDR keeps descriptors on files it scans so I probably hit the ceiling faster than most people. Don’t think it’s the cause though, the fds are on normal source files and the abort is in your sandbox path.

If you want to check this on another machine, run it while Cursor is broken but before quitting:

```bash

MAIN=$(pgrep -f “Cursor.app/Contents/MacOS/Cursor” | head -1)

lsof -p $MAIN | awk ‘NR>1 && $4 ~ /^[0-9]+[rwu]/{n=$4; gsub(/[^0-9]/,“”,n); print n}’ \

| sort -un | awk ‘NR==1{min=$1} {max=$1; n++} END{print “fds:”,n,“min:”,min,“max:”,max}’

```

Count sitting at the ceiling with no gaps means same thing.

Two things. Any way to raise the fd limit or put the file watcher on polling in the meantime? Restarting every few minutes is painful. And would a verbose main log while the leak builds be useful for finding which watcher isn’t closing? I can grab fd counts over time if that helps.

Happy to send the full crash files if you need them, just say where.

Very cool write-up. fd census, crash trace, and correlating with watcher churn save a lot of time. I shared it with the team along with your .ips and the script, we’re tracking it. I can’t give an ETA yet, but I’ll reply here when there’s an update.

On your questions and what you can do right now while the build is chewing through the tree:

  1. The main thing is to remove from the watcher the folders your build writes to. Cursor Settings Cmd+, then find files.watcherExclude and add your build output paths for example **/dist/**, **/build/**, **/.next/**, **/node_modules/**, plus anything else your build rewrites. The teardown and recreate of watchers on those folders is what floods fd, so this should noticeably slow the buildup. Also check search.followSymlinks: false if your tree has symlinks.

  2. Raise the fd limit for the process as a temporary workaround. Launch Cursor from Terminal after ulimit -n 65536 in the same session, then run cursor. This won’t fix the leak, but it pushes the ceiling so you’ll need fewer restarts.

  3. On --disable-extensions, yep, run it longer. A short test won’t show anything, you’re right. Given EDR that holds descriptors on scanned files, it’d be useful to see if it speeds up hitting the ceiling. If you can, compare the fd growth rate using your script with extensions on vs off over a similar time window.

  4. Verbose main log, yes, that helps. Run cursor --log trace, let the leak build up, and attach the main log for that period. Also your fd measurements over time are very helpful, so if you can capture them, please include them. Feel free to share full crash files too, they won’t hurt.

Let me know if watcherExclude helped slow things down. That’s the most likely quick win right now.