[Bug] Windows auto-update constantly "uninstalling" Cursor

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

For some reason, Cursor tries to auto-update everytime I close the app. While in theory it should work fine, I often close the app a few seconds before shutting down my laptop.
This means next time I try to use Cursor, it is “uninstalled”. I need to remember where the heck it stores it files, go to the “_” temp folder, move all files back into root folder (and wait for minutes until the ~19k files are moved - thanks NPM…).
Could you please either handle this better or behave as most apps which ASK THE USER before installing an update, or at least trigger the update when the app STARTS, not when it is CLOSING?

Steps to Reproduce

  1. Open Cursor
  2. Receive an update
  3. Quit Cursor
  4. Shutdown/restart windows right after close
  5. Try to open Cursor (file not found, because it’s now in “_” folder

Expected Behavior

Any of the following:

  1. Ask before initiating an update, that way the user knows it needs to wait (and inform when done)
  2. Install updates when the app starts, not when it’s closed
  3. Keep a lightweight exe in root folder so it can recover from crashed updates without manual intervention from user

Screenshots / Screen Recordings

Operating System

Windows 10/11

Version Information

Version: 3.11.13 (user setup)
VS Code Extension API: 1.125.0
Commit: 3f21b08f0b436a07be29fbfe00b304fa15553350
Date: 2026-07-10T01:45:28.254Z
Layout: Agent Window
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.256
OS: Windows_NT x64 10.0.26200

(This is happening for so much time that has now hit a nerve)

Does this stop you from using Cursor

Yes - Cursor is unusable

Hey thanks for the detailed report and screenshots. I see the _ folder and the dialog about moving 19k files back. This is a known bug with the Windows auto-updater. If the system shuts down or restarts before the update finishes the install phase the old binary gets deleted and the new one does not install. That is why Cursor.exe is missing and files end up in the temp folder. The issue is known and tracked but I cannot give an ETA on the fix yet.

What you can do right now.

Restoration

  1. Fully close Cursor including the tray icon.
  2. Before a new install remove leftovers from the interrupted update. Delete the contents of the _ folder and the old install directory %LOCALAPPDATA%\Programs\cursor so the new installer does not hit broken files.
  3. Install the latest version from Cursor · Download.

Settings and extensions stay in %APPDATA%\Cursor and %USERPROFILE%\.cursor. They do not get lost. Only the binary itself disappears.

To stop this from happening again

  • Turn off auto-update. Go to Cursor Settings > search for update.mode > set it to none. Update manually through the Help menu when it suits you.
  • Before restarting or shutting down Windows fully close Cursor and let the update finish.
  • If this is a work machine with antivirus or EDR add the install folder %LOCALAPPDATA%\Programs\cursor to exclusions so protection does not hold a file handle during the update.

Your ideas about asking before an update installing on startup or keeping a recovery exe are basically the right direction for the updater. Let me know if anything else breaks after reinstall.

Dean I see you’ve replied to several copies of this same bug report.

You guys need to fix this in a strategic way that doesn’t involve users doing it themselves.

Try registering a service in Windows that is scheduled to run on reboot (as a fallback) which also attempts to monitor the file-handle situation and automatically runs the installer when the file handles are freed up. The service is a way to catch any problems with the file handles being locked before reboots or system crashes.

I suspect no sufficient strategy was dreamed up yet, so there’s my solution. The team is free to use it as a prompt. Or you could simply tell an AI that you need an atomic update solution on Windows and it should navigate the issue.

Also, @Bruno_Lima 's suggestions are quite reasonable UX architecture

  1. Ask before initiating an update, that way the user knows it needs to wait (and inform when done)
  2. Install updates when the app starts, not when it’s closed
  3. Keep a lightweight exe in root folder so it can recover from crashed updates without manual intervention from user

I forgot to respond earlier, @deanrie I couldn’t find this in “Cursor settings” (from Agents mode), were you referring to this from IDE mode?

This even produced one of the suggested behaviors I mentioned before, after app startup:

Screenshot 2026-07-23 102559

I ignored it for a few days and it respected the decision.

You may want to enable this as default in next releases…

Yeah, that’s right. This setting lives in the editor settings Settings UI or settings.json, not in the Plan panel in the Agents window. You found the right place.

start is a good choice. Cursor only checks for updates on launch and doesn’t run background checks, so the update won’t kick off when you close the app anymore. If you want full manual control, you can set it to manual and update whenever you want.

Let me know if anything still behaves weird after switching the mode.

@deanrie Hey Dean, this is incredibly frustrating… this happens nearly every other day with the amount of frequent updates to the Cursor app. It has literally happened multiple times a week for months on end…why is this still persisting?

And if it such a known bug in the community, why continue to release so many minor patch updates without addressing this internally?

Can the team please surface this as a priority ticket, it is a severe detriment on quality of life usage and blocker on productivity and often times disrupts agents in the middle of a push or merge.

Hey Calvin. I get it, hitting this a few times a week is really exhausting, especially when it kills the agent in the middle of a push or merge.

This bug is known. I can’t share an ETA yet, but if you want to stop it right now, turn off auto-update. That’s the most reliable way to avoid the loop until there’s a fix.

Cursor Settings > search for update.mode > set it to none (or manual if you want to update yourself via the Help menu when it’s convenient). After that, Cursor won’t try to update on close, so an interrupted shutdown won’t break the install.

If Cursor is already broken, fully quit it (including the tray icon), delete the contents of the _ folder and the old directory %LOCALAPPDATA%\Programs\cursor, then install the latest version from Cursor · Download. Your settings and extensions are in %APPDATA%\Cursor and %USERPROFILE%\.cursor and won’t be lost. Only the binary gets replaced.

If this is a work machine with antivirus or EDR, add %LOCALAPPDATA%\Programs\cursor to exclusions so the protection doesn’t hold a file handle during updates.

Let me know if anything still breaks after switching to none or manual.