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
- Run Cursor 3.21.9 on macOS 27.0 (Apple Silicon), installed normally at /Applications/Cursor.app.
- Wait ~30s after launch — Cursor checks for updates and finds 3.21.18.
- Let it download, then restart when prompted.
- Cursor quits and relaunches, still on 3.21.9.
- 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
