The last 2 updates of Cursor on Macos have trouble

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

The last 2 updates of cursor on macos left the installer hanging in the middle of the update process. However, cursor restarts and seems to work anyway (with the correct version: 3.17.8 here). See CleanShot 2026-08-22 at 11.40.30 · CleanShot Cloud for hanged installer.

Steps to Reproduce

Install update of cursor from cursor “update” blue button

Expected Behavior

Full update

Operating System

MacOS

Version Information

3.17.8
(don’t bug me forcing 10 cars here)

Does this stop you from using Cursor

No - Cursor works, but with this issue

Maybe an update got pulled? Same thing happened to me, I’m on 3.17.8 as well (updated to this version 2 days ago), but “Check for Updates” says there are none.

Hey @Vincent_Keunen , your install looks healthy. That’s a newer macOS update-progress window that sometimes lingers after Cursor has already relaunched on the new version (you’re on 3.17.8), so it’s safe to just close it if it hangs. Nothing on your end - it’s an issue we’re tracking, and I’ll follow up here when there’s an update.

@RayGraham - same thing, and your update did land. “Check for Updates” showing none just means you’re already on the latest, so nothing was pulled.

Thanks but the installer window can’t be closed. The process can’t be forced killed either. I suppose I need to reboot. A bit overkill…

Same problem with the 3.17.19 upgrade: installer hangs while updating. Update seems to happen anyway. Can’t kill the hanged installer… See CleanShot 2026-08-25 at 17.18.54 · CleanShot Cloud

Same problem again after later updates — this remains problematic.

The installer window still cannot be closed, and the process still
cannot be force-killed. Leftover dialogs now stack across versions:

  • Updating Cursor (3.18.9) — Installing update…
  • Updating Cursor (3.17.21) — Installing update…
  • Updating Cursor (3.17.19) — Preparing update…
  • Updating Cursor (3.17.8) — Installing update…

Cursor itself is on 3.18.9 and works (macOS 26.5.1). The update lands,
but the hung installer windows stay until reboot.

Screenshot attached: four stacked “Updating Cursor” windows that
cannot be closed.

(attachments)

Those stuck “Updating Cursor” panels are just a leftover helper process, not Cursor itself, so there’s no need to reboot: open Activity Monitor, search “update supervisor,” and Force Quit each stacked entry (or in Terminal, pkill -9 -f update-supervisor). It’s safe since the update has already finished. It’s an issue we’re tracking, and that same step clears them if they show up again.

Thanks for the tip. It worked.

Every update has the same problem (6 or 7 times); only on my powerbook. Works ok on a mac mini.

More:

Hi Cursor team — stuck “Updating Cursor / Installing update…” window on one Mac only.

Summary
After every in-app update for the last ~6–7 releases, the small “Updating Cursor (x.y.z) — Installing update…” dialog stays open forever on this machine. The update itself succeeds (new build launches and works). On my other Mac, the same dialog closes normally.

Environment (affected machine)

  • macOS 27.0.1 (Build 26A434), Darwin 27.0.0, Apple Silicon
  • Cursor just updated 3.22.12 → 3.23.12 (same hang pattern on prior updates)

What we observed while the dialog was still open

  1. The dialog is owned by cursor-update-supervisor (under ~/Library/Application Support/Cursor/update-supervisor/<installationId>/), not by a stuck ShipIt install.
  2. ShipIt completed successfully (ShipIt_stderr.log: “Installation completed successfully”, new app launched). Disk app is 3.23.12; new Cursor main process is running.
  3. app-ready.json was written for the new version/pid, but result.json was never written and events stopped at phase installing.
  4. Supervisor main thread was blocked in SupervisorApplication.poll() → launchdSnapshot() → NSTask waitUntilExit on:
    launchctl print gui/501/com.todesktop.230313mzl4w4u92.ShipIt
  5. That child launchctl was stuck in __write_nocancel on its stdout/stderr pipes back to the supervisor; both pipe buffers were full (~16KB). Classic NSTask deadlock: parent waits for exit without draining pipes; child blocks once output exceeds the pipe buffer.
  6. A separate launchctl print of the same job (from a terminal) returned immediately with small output after ShipIt had finished — so the hang is specific to the supervisor’s piped NSTask, especially when print output is large mid-install.
  7. Historical pattern on this Mac: many prior update-supervisor/<id>/ folders have app-ready.json but no result.json (only a couple ever got result=success), matching “update works, UI never finishes” for months.

Likely bug
cursor-update-supervisor should not waitUntilExit on launchctl print without asynchronously reading stdout/stderr (or use a temp file / standardOutput = .nullDevice if output isn’t needed). On newer macOS, launchctl print for an in-flight ShipIt job can be large enough to fill the pipe and deadlock the progress UI forever.

Workaround
Killing the supervisor PID (or force-quitting that dialog) is safe; Cursor is already on the new version.

Happy to share logs/PIDs/sample stacks if useful.

@Vincent_Keunen your diagnosis matches what we found, thanks for digging in. We’ve passed it to the team, so no need for extra logs. I’ll post here when there’s a fix.