Windows updater fails with dual install (system-wide + per-user) and leaks ~2GB of temp folders

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Summary

When both a system-wide install (C:\Program Files\cursor\) and a per-user install (%LOCALAPPDATA%\Programs\cursor\) coexist on Windows, the Inno updater repeatedly targets the system-wide install but fails silently with “Access is denied (os error 5)” because it lacks admin privileges to modify C:\Program Files\.
Each failed attempt leaves a vscode-stable-system-x64-* folder in %TEMP% that is never cleaned up. Over ~2 months I accumulated 46 folders totaling 1.8 GB of wasted disk space.

Observed behavior

  • Updater log (cursor-inno-updater-*.log in %TEMP%) shows repeated Delete directory recursively: "C:\Program Files\cursor\resources" attempts (11+ retries per cycle), ending with ERRO Access is denied. (os error 5)
  • When Cursor is running, the updater retries 12 times checking if Cursor.exe has exited, then gives up silently — no error is shown to the user
  • Stale vscode-stable-system-x64-* and vscode-stable-user-x64-* temp folders accumulate indefinitely

Steps to Reproduce

Reproduction

  1. Install Cursor system-wide (e.g. from an older installer that defaulted to C:\Program Files\cursor\)
  2. Later install Cursor per-user (%LOCALAPPDATA%\Programs\cursor\)
  3. Both HKLM and HKCU uninstall registry entries now exist
  4. Trigger an update — the updater targets the system-wide path and fails

Expected Behavior

Expected behavior

  • The updater should detect and target the correct install location (per-user vs system-wide based on running instance)
  • Failed update temp folders should be cleaned up on next launch
  • The updater should surface a clear error message when it fails repeatedly
  • Ideally, warn the user if both install types coexist (this is a known conflict pattern)

Operating System

Windows 10/11

Version Information

Version: 3.2.16 (user setup)
VSCode Version: 1.105.1
Commit: 3e548838cf824b70851dd3ef27d0c6aae371b3f0
Date: 2026-04-28T21:07:47.682Z
Layout: editor
Build Type: Stable
Release Track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
OS: Windows_NT x64 10.0.26200

For AI issues: which model did you use?

na

Does this stop you from using Cursor

No - Cursor works, but with this issue

This seems like a bug. The Windows updater doesn’t handle the dual-install scenario (system-wide + per-user) correctly, and the temp folder cleanup has a gap that leaves old update directories behind.

Immediate fix — remove the stale system-wide install:

  1. Open Settings > Apps > Installed apps (or “Add or Remove Programs” on Win 10)

  2. Look for a second Cursor entry that shows the C:\Program Files\cursor\ path (it may say “Cursor” without “(User)” in the name)

  3. Uninstall that system-wide entry (you may need admin privileges)

  4. Your per-user install at %LOCALAPPDATA%\Programs\cursor\ will continue working normally, and future updates should succeed

Clean up the temp folders:

You can safely delete all the vscode-stable-system-x64-* and vscode-stable-user-x64-* folders in %TEMP% to reclaim that ~1.8 GB.

Going forward, Once the system-wide install is removed, the updater will only find the per-user registry entry, and updates should work without permission errors.

Our team is aware of the broader Windows updater stability issues, and this is being tracked. Thank you for the detailed write-up with logs and reproduction steps — that’s very helpful.