Auto-update loops forever on macOS 27: ShipIt dies mid-install, app relaunches old version (3.21.9 → 3.21.18)

Describe the Bug

Auto-update never completes. Cursor downloads the update, quits, fails to install it, and relaunches the OLD version — then immediately re-downloads the same ~900 MB update and repeats indefinitely. Nothing is shown in the UI; from the user’s side the app just “restarts without updating”.

Stuck on 3.21.9, repeatedly failing to install 3.21.18. Three full download → quit → fail → relaunch cycles happened in 12 minutes, re-downloading roughly 2.7 GB.

Cursor already knows the install failed. main.log records:
[UpdateSupervisor] Restart acknowledged (success=false, currentVersion=3.21.9)
but nothing surfaces to the user, and the next cycle begins ~30 seconds later.

The Squirrel helper (ShipIt) logs “Beginning installation” and then produces no further output — no error line, no completion, and no crash report in ~/Library/DiagnosticReports. A fresh ShipIt process then resumes at an incremented attempt count. After three attempts it gives up with “Too many attempts to install, aborting update” and relaunches the old bundle.

Steps to Reproduce

  1. Run Cursor 3.21.9 on macOS 27.0 (Apple Silicon), installed normally at /Applications/Cursor.app.
  2. Wait ~30s after launch — Cursor checks for updates and finds 3.21.18.
  3. Let it download, then restart when prompted.
  4. Cursor quits and relaunches, still on 3.21.9.
  5. It immediately re-downloads the same update and repeats.

Happens automatically on every launch. No special configuration.

Expected Behavior

Restarting installs 3.21.18.

Failing that: the failure should be surfaced in the UI instead of silently relaunching the old version, and repeated failures should back off rather than re-downloading ~900 MB every cycle.

Screenshots / Screen Recordings

Operating System

MacOS

Version Information

Version: 3.21.18 — but note this was installed MANUALLY as a workaround.
The bug occurred on 3.21.9 failing to auto-update to 3.21.18.

VSCode Version: 1.128.0
Commit: c4730f7d93d787d9ab120af715999f0345ee5bc0
Date: 2026-09-22T02:04:34.641Z
OS: macOS 27.0 (build 26A428), Apple M1, arm64

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, thanks for the detailed report with the ShipIt logs. That really helps.

This is a known issue on macOS 27 that we’re tracking, and I’ve attached your report to it. Our current theory is that macOS kills the updater helper when Cursor isn’t allowed to run in the background, which matches what you’re seeing where ShipIt goes quiet right after “Beginning installation”.

You’re on 3.21.18, so you can check one setting to give the next update a chance to install normally:

  1. Open System Settings.
  2. General → Login Items & Extensions.
  3. Scroll to the “Allow in the Background” section.
  4. Find Cursor and any “Cursor” background task entries, then turn them on.
  5. Fully quit Cursor Cursor → Quit Cursor, then reopen it.

Next time Cursor offers an update, let it restart. After that, open Cursor → About Cursor and tell me what version it shows, and whether Cursor was turned off in that list before you changed the setting.

If it still doesn’t work, it would really help if you zip the folder ~/Library/Caches/com.todesktop.230313mzl4w4u92.ShipIt/ Finder → Go → Go to Folder, then right click → Compress.

On your two suggestions, I agree. We should show the failure more clearly in the UI, and we should back off instead of re-downloading about 900 MB every cycle. I’ve passed both along to the team. I’ll follow up here if there’s an update.