Cursor Windows Installation Stuck at 0%

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

I’m having trouble installing Cursor on Windows 11.

When I run the Cursor installer, it reaches the screen “Preparing to Install…”, but the progress remains at 0% indefinitely and the installation does not continue. No error message appears.

Environment:

  • OS: Windows 11
  • Architecture: x64
  • Installer: Latest Cursor Windows installer
  • Installation type: Standard Windows installation

Troubleshooting already attempted (issue still occurs):

  • Restarting Windows
  • Running the installer as Administrator
  • Downloading the installer again
  • Closing other applications before installation
  • Waiting for an extended period
  • Checking whether Windows Defender or antivirus software is blocking the installer

I can provide screenshots, Windows version information (winver), installer logs, or files from the %LOCALAPPDATA%\Temp directory if needed.

Could you please let me know:

  1. Whether this is a known issue with the current Windows installer
  2. Where I can find the Cursor installation logs
  3. Whether there is an alternative offline/full installer available
  4. Whether there are any temporary files, registry entries, or previous Cursor installation files that should be removed before reinstalling
  5. Whether there is a recommended workaround for the “Preparing to Install… 0%” issue

Thank you.

Steps to Reproduce

  1. Download the latest Cursor installer for Windows
  2. Run the installer
  3. The installer displays “Preparing to Install…”
  4. Progress stays at 0%
  5. No error message appears
  6. The installation never proceeds

Expected Behavior

The installer should move past “Preparing to Install…”, show installation progress, and complete the installation of Cursor on Windows 11.

Screenshots / Screen Recordings

Operating System

Windows 10/11

Version Information

Cursor IDE: unable to determine - the installation never completes, so no version is installed.
Installer: latest Cursor Windows installer (x64) downloaded from cursor.com
OS: Windows 11 x64

Does this stop you from using Cursor

Yes - Cursor is unusable

Hey. When the installer gets stuck on Preparing to Install… at 0% with no CPU activity, it almost always means something on the system is blocking the temporary setup file that the installer unpacks into the temp folder. Since running as admin and checking Defender didn’t help, here’s what usually unblocks it:

  1. Try the user installer instead of the system setup. Both are on Cursor · Download and both are full offline packages. The user installer installs into %LOCALAPPDATA% and avoids permission and file lock issues in Program Files.
  2. In Windows Security → Virus & threat protection → Ransomware protection, temporarily turn off Controlled Folder Access. It can block installs even when real time protection is off.
  3. In Task Manager, end any CursorSetup, CursorSetup-x64-*.tmp, or Cursor processes, then delete Cursor files from %TEMP%. No need to clean the registry.

If it still hangs, run the installer with logging and share the last lines of the log file:

CursorSetup-x64.exe /LOG="%USERPROFILE%\Desktop\cursor_install.log"

If there’s no file there, check %TEMP% for a recent Setup Log *.txt. Also, is this a work or corporate machine? Policies like AppLocker, WDAC, or an EDR can block running apps from the temp folder, and turning off Defender won’t help in that case.

Let me know how it goes.

Report_redacted.zip (8.6 KB)
Thanks for looking into this. I found some additional diagnostic information that may help narrow down the issue.

After another failed installation attempt, I checked Windows Error Reporting (WER). The installer is not simply staying at 0% — Windows records the temporary Cursor installer process as an AppHangB1 event.

Key information from Report.wer:

  • EventType: AppHangB1

  • Application: CursorUserSetup-x64-3.17.19.tmp

  • Application Version: 51.1052.0.0

  • Hang Signature: 0bb9

  • Hang Type: 67246080

  • Windows build: 10.0.26100.9168 / Windows 11 x64

  • WER message: Stopped responding and was closed

  • Process path:
    C:\Users\[USERNAME]\AppData\Local\Temp\is-OKC9F.tmp\CursorUserSetup-x64-3.17.19.tmp

I also found a Cursor update event containing:

updateVersion: 3.17.19
isBackgroundUpdate: false
updateMode: default
triggerKind: installerSpawned

This seems to indicate that the installer is successfully spawned and extracted into the Windows Temp directory, but the temporary setup process then stops responding during the Preparing to Install stage.

I have also noticed multiple Windows Error Reporting entries for both CursorSetup-x64 and CursorUserSetup, apparently created by repeated installation attempts.

For privacy, I made a copy of the WER report and replaced my local Windows username in the path:

C:\Users\<my username>\...

with:

C:\Users\[USERNAME]\...

No other diagnostic values in the WER report were intentionally modified.

I can attach this redacted Report.wer file and the cursor-update-pending-events.json file if they would be useful for debugging.

Before I try another installation, could you please advise on the following?

  1. Is AppHangB1 with CursorUserSetup-x64-3.17.19.tmp a known issue with the current Windows installer?

  2. Is there a specific installer log that would show what the setup process is waiting for when it hangs?

  3. Are there any command-line switches that can enable verbose/debug installer logging?

  4. Should I remove any specific Cursor installer/updater files or directories before trying again?

  5. Is it safe/recommended to clear the Cursor-related is-XXXXX.tmp folders under %LOCALAPPDATA%\Temp before reinstalling?

  6. Could this hang occur while the installer is waiting for another process, service, privilege elevation, file lock, or Windows security check?

  7. Is there an offline/full installer or another installation method that bypasses this bootstrap/setup stage?

  8. If useful, I can also collect a Process Monitor trace while the installer is stuck at 0%.

I would prefer not to repeatedly retry the installer until I know which diagnostic files would be most useful.

Thank you.

Report_redacted.zip (465.7 KB)

from pathlib import Path
import re

src = Path(“/mnt/data/cursor_clean_install.log”)
dst = Path(“/mnt/data/cursor_clean_install_redacted.log”)

text = src.read_text(encoding=“utf-8-sig”)
redacted, count = re.subn(r"elman", “[USERNAME]”, text, flags=re.IGNORECASE)

Preserve UTF-8 BOM, matching the original log encoding

dst.write_text(redacted, encoding=“utf-8-sig”)

Verify the username no longer appears

remaining = len(re.findall(r"elman", redacted, flags=re.IGNORECASE))

print(f"Created: {dst}“)
print(f"Redacted occurrences: {count}”)
print(f"Remaining username occurrences: {remaining}")

Great write-up. The log shows the cause line by line, and it matches upstream.

Key point: the installer isn’t hanging on unpacking. It’s hanging on the Stopping all tunnel services step. At that step it launches cursor-tunnel.exe from the old install and waits for it to exit, synchronously, with no timeout. While it’s waiting, the UI thread doesn’t process messages, so Windows reports AppHangB1 (Stopped responding). In your log, that wait took about 8 minutes (13:58:3414:06:43), after which the install finished normally (Installation process succeeded at 14:08:56).

So stuck at 0% here is a long wait, not a dead process. If it happens again, don’t close the window too early.

To avoid the wait entirely, remove what the installer is trying to stop before you install:

  • End the cursor-tunnel.exe and Cursor.exe processes in Task Manager.
  • Check for and remove the tunnel service: run sc query | findstr /i cursor, then run "...\resources\app\bin\cursor-tunnel.exe" tunnel service uninstall. Or just rename or delete %LOCALAPPDATA%\Programs\cursor, then the Stopping all tunnel services step has nothing to stop.
  • If it hangs again, instead of closing the window, open Analyze wait chain in Task Manager for the Setup process and try ending stuck PowerShell or nvcontainer.exe (NVIDIA overlay). The install often continues right away.

This is known installer behavior inherited from VS Code, same Inno Setup script. See VS Code installer hangs at "Preparing to Install: Setup is preparing to install..." · Issue #247144 · microsoft/vscode · GitHub. I’ve shared the diagnostics and log with the team. It’s safe to delete is-XXXXX.tmp files when the installer isn’t running, and there’s no need to touch the registry.

Glad the install finished and Cursor launched. Let me know if you hit this wait again on the next updates.

Reproduced again during update — same PowerShell hang at cursor-tunnel.exe cleanup

I’m adding an update because the exact same issue happened again during a later Cursor update.

This confirms that the previous case was not a one-time installation failure.

Symptom

During the update, Cursor again became stuck at:

Preparing to Install...
0%

The installer did not continue.

What I checked

While the installer was still stuck, I ran:

$stuck = Get-CimInstance Win32_Process |
Where-Object {
    $_.Name -eq "powershell.exe" -and
    $_.CommandLine -like "*cursor-tunnel.exe*"
}

$stuck |
Select-Object ProcessId,ParentProcessId,ExecutablePath,CommandLine |
Format-List

This time I found:

ProcessId       : 49028
ParentProcessId : 54920

ExecutablePath:
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe

The command line was:

Get-WmiObject Win32_Process |
Where-Object {
    $_.ExecutablePath -eq 'C:\Users\[USERNAME]\AppData\Local\Programs\cursor\resources\app\bin\cursor-tunnel.exe'
} |
Select @{Name='Id'; Expression={$_.ProcessId}} |
Stop-Process -Force

This is the same cursor-tunnel.exe cleanup PowerShell subprocess that caused my previous Cursor installation to hang.

Workaround confirmed again

After verifying that this PowerShell process belonged to the Cursor installer/update process, I terminated only that process:

Stop-Process -Id 49028 -Force

Immediately after terminating that PowerShell process, the Cursor installer continued past “Preparing to Install” and resumed the update.

This is now the second time I have reproduced the same behavior.

Important warning

The PID is different every time.

Do not copy and use 49028 directly.

First identify the PowerShell process whose command line contains:

cursor-tunnel.exe

and verify that it belongs to the Cursor installer/update process.

A safer way to identify it is:

Get-CimInstance Win32_Process |
Where-Object {
    $_.Name -eq "powershell.exe" -and
    $_.CommandLine -like "*cursor-tunnel.exe*"
} |
Select-Object ProcessId,ParentProcessId,ExecutablePath,CommandLine |
Format-List

Then terminate only the verified process:

Stop-Process -Id <VERIFIED_PID> -Force

Request to the Cursor team

Since this has now happened to me during both a clean installation and a later update, I believe this should be investigated as an installer/updater bug rather than an isolated local installation issue.

It appears that the installer waits indefinitely for the PowerShell subprocess used in the:

Stopping all tunnel services

step.

Possible areas worth investigating:

  • Why the Get-WmiObject Win32_Process PowerShell subprocess sometimes does not terminate

  • Why the installer waits indefinitely instead of applying a timeout

  • Whether the cleanup logic can use a more reliable process-enumeration method

  • Whether failure to stop cursor-tunnel.exe should be treated as non-blocking when the target process is not running

  • Why the installer appears to invoke the PowerShell process through the WOW64/SysWOW64 path

  • Whether a timeout/fallback should allow installation or update to proceed automatically

A practical improvement would be something like:

Try to stop cursor-tunnel.exe
        ↓
Wait with a reasonable timeout
        ↓
If the cleanup subprocess does not exit
        ↓
Terminate/skip the cleanup step
        ↓
Continue installation

rather than leaving the installer indefinitely at 0%.

I previously attached a redacted installer log showing the same hang at:

Stopping all tunnel services

For privacy, my Windows username was replaced with [USERNAME]; no other diagnostic values were intentionally modified.

I hope the Cursor team can implement a permanent fix, because users without experience inspecting Windows processes may have no way to understand why the installer/update is stuck at 0%.

Thanks for the second repro and the detailed debugging. The PowerShell script to identify the stuck process and the note about the PID changing are really helpful, especially for anyone who runs into the same thing.

Your analysis matches what we saw in the logs. The installer is not hanging on unpacking. It is waiting synchronously for cursor-tunnel.exe to exit at the Stopping all tunnel services step, with no timeout. While it waits, the UI thread is not processing messages, and Windows flags it as AppHangB1. The fact that it also happened during an update now confirms this is not a one-off.

We are tracking this. I shared the updated diagnostics and logs with the team, including your suggestion to add a timeout or fallback for the cleanup step. I cannot share a timeline yet, but I will reply in the thread when there is an update.

To avoid hitting this wait on future updates, the most reliable workaround is to remove what the installer is trying to stop before you start it:

  • End the cursor-tunnel.exe and Cursor.exe processes in Task Manager.
  • Check for and remove the tunnel service: sc query | findstr /i cursor, then run "...\resources\app\bin\cursor-tunnel.exe" tunnel service uninstall. Or just rename or delete %LOCALAPPDATA%\Programs\cursor. Then the Stopping all tunnel services step has nothing to stop.
  • If it hangs again, instead of closing the window, open Analyze wait chain for the Setup process in Task Manager and end the stuck PowerShell process, like you did before.

Let me know if you catch this again on the next updates.