Cursor IDE uninstalls itself when trying to update if last window was open in WSL - requires full download/install every time

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Every time an update is available, if the last Cursor IDE window that’s open is running in WSL, the update fails and effectively leaves Cursor uninstalled (not in Start menu, broken toolbar Launch icon, no executable).

I’m not sure when this started, but this has happened on every update for the past few weeks at least.

I have to download the latest copy from the site and re-install the Cursor IDE. Luckily, my preferences/settings/workspaces persist.

I want to be able to close a window without it bricking the entire application.

I have other applications running in WSL, so I don’t want to open a separate terminal to shut the whole thing down.

Even if I was willing to do that, the window is open in WSL. If I shutdown WSL, then the IDE tries to restart it. If I close the IDE first, then I would have to time my WSL shutdown so I kill it before the update process hits and error.

Steps to Reproduce

  • Cursor IDE is open (Windows 11), current window is running in Ubuntu on WSL (Ubuntu 22.04.4 LTS - “Jammy Jellyfish”)
  • “A new version is available - restart to update” alert appears
  • Close out IDE window, but WSL is still running
  • Receive error message telling me that certain files/folders are still in use (ie, AppData/ folders)
  • Cursor no longer in start menu, pinned Toolbar Launch Icon becomes unlinked, can’t find executable.

Expected Behavior

Cursor IDE closes, and either updates as-expected, or the update fails graciously, without removing Cursor from my system.

Operating System

Windows 10/11

Version Information

Version: 3.15.19 (user setup)
VS Code Extension API: 1.128.0
Commit: de07bee81cefe43461ebf4f40c3d2d78d15052a0
Date: 2026-08-11T05:22:54.627Z
Layout: IDE
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.291
OS: Windows_NT x64 10.0.26200

Additional Information

What I’m typically running when this occurs:

=== PowerShell (cleaned) ===

ProcessId Name       CommandLine
--------- ----       -----------
    25124 Cursor.exe "C:\Users\UserName\AppData\Local\Programs\cursor\Cursor.exe"
    18612 Cursor.exe C:\Users\UserName\AppData\Local\Programs\cursor\Cursor.exe --type=crashpad-handler
                     --user-data-dir=C:\Users\UserName\AppData\Roaming\Cursor /prefetch:4 --no-rate-limit
                     --monitor-self-annotation=ptype=crashpad-handler
                     --database=C:\Users\UserName\AppData\Roaming\Cursor\Crashpad --url=https://f.a.k/e
                     --annotation=_productName=Cursor --annotation=_version=3.15.19 --annotation=plat=Win64
                     --annotation=prod=Electron --annotation=ver=40.10.3
                     --initial-client-data=<HANDLES>
     8872 Cursor.exe "C:\Users\UserName\AppData\Local\Programs\cursor\Cursor.exe" --type=gpu-process
                     --user-data-dir="C:\Users\UserName\AppData\Roaming\Cursor" --gpu-preferences=<GPU-PREFS>
                     --field-trial-handle=<HANDLE> --enable-features=DocumentPolicyIncludeJSCallStacksInCrashReports,EnableTransparentHwndEnlargement,PdfUseShowSaveFilePicker
                     --disable-features=AccessibilityBlockFlowIterator,CalculateNativeWinOcclusion,LocalNetworkAccessChecks,NetworkServiceSandbox,ScreenAIOCREnabled,SpareRendererForSitePerProcess,TraceSiteInstanceGetProcessCreation
                     --variations-seed-version --trace-process-track-uuid=<64-BIT-TOKEN>
                     --mojo-platform-channel-handle=<HANDLE> /prefetch:2
     9184 Cursor.exe "C:\Users\UserName\AppData\Local\Programs\cursor\Cursor.exe" --type=utility
                     --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none
                     --user-data-dir="C:\Users\UserName\AppData\Roaming\Cursor"
                     --standard-schemes=vscode-webview,vscode-file,cursor-rpc-devtools --enable-sandbox --secure-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --bypasscsp-schemes=sentry-ipc --cors-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --fetch-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --service-worker-schemes=vscode-webview --code-cache-schemes=vscode-webview,vscode-file
                     --field-trial-handle=<HANDLE> --enable-features=DocumentPolicyIncludeJSCallStacksInCrashReports,EnableTransparentHwndEnlargement,PdfUseShowSaveFilePicker
                     --disable-features=AccessibilityBlockFlowIterator,CalculateNativeWinOcclusion,LocalNetworkAccessChecks,NetworkServiceSandbox,ScreenAIOCREnabled,SpareRendererForSitePerProcess,TraceSiteInstanceGetProcessCreation
                     --variations-seed-version --trace-process-track-uuid=<64-BIT-TOKEN>
                     --mojo-platform-channel-handle=<HANDLE> /prefetch:11
     9668 Cursor.exe "C:\Users\UserName\AppData\Local\Programs\cursor\Cursor.exe" --type=renderer
                     --user-data-dir="C:\Users\UserName\AppData\Roaming\Cursor"
                     --standard-schemes=vscode-webview,vscode-file,cursor-rpc-devtools --enable-sandbox --secure-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --bypasscsp-schemes=sentry-ipc --cors-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --fetch-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --service-worker-schemes=vscode-webview --code-cache-schemes=vscode-webview,vscode-file
                     --app-user-model-id=Anysphere.Cursor
                     --app-path="C:\Users\UserName\AppData\Local\Programs\cursor\resources\app" --enable-sandbox
                     --enable-blink-features=HighlightAPI --force-gpu-mem-available-mb=1024
                     --disable-blink-features=FontMatchingCTMigration,StandardizedBrowserZoom,
                     --video-capture-use-gpu-memory-buffer --lang=en-US --device-scale-factor=1 --num-raster-threads=4
                     --enable-main-frame-before-activation --renderer-client-id=4
                     --time-ticks-at-unix-epoch=<INT> --launch-time-ticks=<INT>
                     --field-trial-handle=<HANDLE> --enable-features=DocumentPolicyIncludeJSCallStacksInCrashReports,EnableTransparentHwndEnlargement,PdfUseShowSaveFilePicker
                     --disable-features=AccessibilityBlockFlowIterator,CalculateNativeWinOcclusion,LocalNetworkAccessChecks,NetworkServiceSandbox,ScreenAIOCREnabled,SpareRendererForSitePerProcess,TraceSiteInstanceGetProcessCreation
                     --variations-seed-version --trace-process-track-uuid=<64-BIT-TOKEN>
                     --mojo-platform-channel-handle=<HANDLE>
                     --vscode-window-config=vscode:<128-BIT-TOKEN> /prefetch:1
    26380 Cursor.exe "C:\Users\UserName\AppData\Local\Programs\cursor\Cursor.exe" --type=utility
                     --utility-sub-type=audio.mojom.AudioService --lang=en-US --service-sandbox-type=audio
                     --video-capture-use-gpu-memory-buffer --user-data-dir="C:\Users\UserName\AppData\Roaming\Cursor"
                     --standard-schemes=vscode-webview,vscode-file,cursor-rpc-devtools --enable-sandbox --secure-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --bypasscsp-schemes=sentry-ipc --cors-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --fetch-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --service-worker-schemes=vscode-webview --code-cache-schemes=vscode-webview,vscode-file
                     --field-trial-handle=<HANDLE> --enable-features=DocumentPolicyIncludeJSCallStacksInCrashReports,EnableTransparentHwndEnlargement,PdfUseShowSaveFilePicker
                     --disable-features=AccessibilityBlockFlowIterator,CalculateNativeWinOcclusion,LocalNetworkAccessChecks,NetworkServiceSandbox,ScreenAIOCREnabled,SpareRendererForSitePerProcess,TraceSiteInstanceGetProcessCreation
                     --variations-seed-version --trace-process-track-uuid=<64-BIT-TOKEN>
                     --mojo-platform-channel-handle=<HANDLE> /prefetch:12
    25272 Cursor.exe "C:\Users\UserName\AppData\Local\Programs\cursor\Cursor.exe" --type=utility
                     --utility-sub-type=node.mojom.NodeService --lang=en-US --service-sandbox-type=none
                     --video-capture-use-gpu-memory-buffer --user-data-dir="C:\Users\UserName\AppData\Roaming\Cursor"
                     --standard-schemes=vscode-webview,vscode-file,cursor-rpc-devtools --enable-sandbox --secure-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --bypasscsp-schemes=sentry-ipc --cors-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --fetch-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --service-worker-schemes=vscode-webview --code-cache-schemes=vscode-webview,vscode-file
                     --field-trial-handle=<HANDLE> --enable-features=DocumentPolicyIncludeJSCallStacksInCrashReports,EnableTransparentHwndEnlargement,PdfUseShowSaveFilePicker
                     --disable-features=AccessibilityBlockFlowIterator,CalculateNativeWinOcclusion,LocalNetworkAccessChecks,NetworkServiceSandbox,ScreenAIOCREnabled,SpareRendererForSitePerProcess,TraceSiteInstanceGetProcessCreation
                     --variations-seed-version --trace-process-track-uuid=<64-BIT-TOKEN>
                     --mojo-platform-channel-handle=<HANDLE> /prefetch:14
    16332 Cursor.exe "C:\Users\UserName\AppData\Local\Programs\cursor\Cursor.exe" --type=utility
                     --utility-sub-type=node.mojom.NodeService --lang=en-US --service-sandbox-type=none
                     --video-capture-use-gpu-memory-buffer --user-data-dir="C:\Users\UserName\AppData\Roaming\Cursor"
                     --standard-schemes=vscode-webview,vscode-file,cursor-rpc-devtools --enable-sandbox --secure-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --bypasscsp-schemes=sentry-ipc --cors-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --fetch-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --service-worker-schemes=vscode-webview --code-cache-schemes=vscode-webview,vscode-file
                     --field-trial-handle=<HANDLE> --enable-features=DocumentPolicyIncludeJSCallStacksInCrashReports,EnableTransparentHwndEnlargement,PdfUseShowSaveFilePicker
                     --disable-features=AccessibilityBlockFlowIterator,CalculateNativeWinOcclusion,LocalNetworkAccessChecks,NetworkServiceSandbox,ScreenAIOCREnabled,SpareRendererForSitePerProcess,TraceSiteInstanceGetProcessCreation
                     --variations-seed-version --trace-process-track-uuid=<64-BIT-TOKEN>
                     --mojo-platform-channel-handle=<HANDLE> /prefetch:14
    30600 Cursor.exe "C:\Users\UserName\AppData\Local\Programs\cursor\Cursor.exe" --type=utility
                     --utility-sub-type=node.mojom.NodeService --lang=en-US --service-sandbox-type=none
                     --dns-result-order=ipv4first --experimental-network-inspection --inspect-port=0
                     --video-capture-use-gpu-memory-buffer --user-data-dir="C:\Users\UserName\AppData\Roaming\Cursor"
                     --standard-schemes=vscode-webview,vscode-file,cursor-rpc-devtools --enable-sandbox --secure-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --bypasscsp-schemes=sentry-ipc --cors-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --fetch-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --service-worker-schemes=vscode-webview --code-cache-schemes=vscode-webview,vscode-file
                     --field-trial-handle=<HANDLE> --enable-features=DocumentPolicyIncludeJSCallStacksInCrashReports,EnableTransparentHwndEnlargement,PdfUseShowSaveFilePicker
                     --disable-features=AccessibilityBlockFlowIterator,CalculateNativeWinOcclusion,LocalNetworkAccessChecks,NetworkServiceSandbox,ScreenAIOCREnabled,SpareRendererForSitePerProcess,TraceSiteInstanceGetProcessCreation
                     --variations-seed-version --trace-process-track-uuid=<64-BIT-TOKEN>
                     --mojo-platform-channel-handle=<HANDLE> /prefetch:14
    14648 Cursor.exe "C:\Users\UserName\AppData\Local\Programs\cursor\Cursor.exe" --type=utility
                     --utility-sub-type=node.mojom.NodeService --lang=en-US --service-sandbox-type=none
                     --dns-result-order=ipv4first --experimental-network-inspection --inspect-port=0
                     --video-capture-use-gpu-memory-buffer --user-data-dir="C:\Users\UserName\AppData\Roaming\Cursor"
                     --standard-schemes=vscode-webview,vscode-file,cursor-rpc-devtools --enable-sandbox --secure-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --bypasscsp-schemes=sentry-ipc --cors-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --fetch-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --service-worker-schemes=vscode-webview --code-cache-schemes=vscode-webview,vscode-file
                     --field-trial-handle=<HANDLE> --enable-features=DocumentPolicyIncludeJSCallStacksInCrashReports,EnableTransparentHwndEnlargement,PdfUseShowSaveFilePicker
                     --disable-features=AccessibilityBlockFlowIterator,CalculateNativeWinOcclusion,LocalNetworkAccessChecks,NetworkServiceSandbox,ScreenAIOCREnabled,SpareRendererForSitePerProcess,TraceSiteInstanceGetProcessCreation
                     --variations-seed-version --trace-process-track-uuid=<64-BIT-TOKEN>
                     --mojo-platform-channel-handle=<HANDLE> /prefetch:14
    26368 Cursor.exe "C:\Users\UserName\AppData\Local\Programs\cursor\Cursor.exe" --type=utility
                     --utility-sub-type=node.mojom.NodeService --lang=en-US --service-sandbox-type=none
                     --video-capture-use-gpu-memory-buffer --user-data-dir="C:\Users\UserName\AppData\Roaming\Cursor"
                     --standard-schemes=vscode-webview,vscode-file,cursor-rpc-devtools --enable-sandbox --secure-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --bypasscsp-schemes=sentry-ipc --cors-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --fetch-schemes=vscode-webview,vscode-file,vscode-remote-resource,vscode-managed-remote-resource,cursor-rpc-devtools,sentry-ipc
                     --service-worker-schemes=vscode-webview --code-cache-schemes=vscode-webview,vscode-file
                     --field-trial-handle=<HANDLE> --enable-features=DocumentPolicyIncludeJSCallStacksInCrashReports,EnableTransparentHwndEnlargement,PdfUseShowSaveFilePicker
                     --disable-features=AccessibilityBlockFlowIterator,CalculateNativeWinOcclusion,LocalNetworkAccessChecks,NetworkServiceSandbox,ScreenAIOCREnabled,SpareRendererForSitePerProcess,TraceSiteInstanceGetProcessCreation
                     --variations-seed-version --trace-process-track-uuid=<64-BIT-TOKEN>
                     --mojo-platform-channel-handle=<HANDLE> /prefetch:14
    29084 Cursor.exe C:\Users\UserName\AppData\Local\Programs\cursor\Cursor.exe --dns-result-order=ipv4first
                     --experimental-network-inspection c:\Users\UserName\AppData\Local\Programs\cursor\resources\app\extensions\cursor-always-local\dist\gitWorker.js


=== Bash / WSL (cleaned) ===

UserName@host:~/projects/dti-cv-monitoring$ ps aux | grep cursor
UserName     620  0.0  0.0   2892   948 ?        Ss   09:24   0:00 sh /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/bin/cursor-server --start-server --host=127.0.0.1 --port=0 --connection-token-file /home/UserName/.cursor-server/.<160-BIT-TOKEN>.token --telemetry-level off --use-host-proxy --disable-websocket-compression --without-browser-env-var --accept-server-license-terms
UserName     633  0.7  0.4 11880836 153732 ?     Sl   09:24   0:05 /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/node /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/out/server-main.js --start-server --host=127.0.0.1 --port=0 --connection-token-file /home/UserName/.cursor-server/.<160-BIT-TOKEN>.token --telemetry-level off --use-host-proxy --disable-websocket-compression --without-browser-env-var --accept-server-license-terms
UserName    1052  0.7  0.7 1590372 245432 ?      Sl   09:24   0:05 /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/node /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/out/bootstrap-fork --type=fileWatcher
UserName    1330  4.8  1.9 79620152 637896 ?     Sl   09:24   0:34 /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/node --dns-result-order=ipv4first --inspect-port=0 --experimental-network-inspection /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/out/bootstrap-fork --type=extensionHost --transformURIs --useHostProxy=true
UserName    1383  0.1  0.2 1146216 75940 ?       Rl   09:25   0:01 /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/node /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/out/bootstrap-fork --type=ptyHost --logsPath /home/UserName/.cursor-server/data/logs/20260813T092452
UserName    1617  0.0  0.1 1025440 60728 ?       Sl   09:25   0:00 /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/node /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/extensions/markdown-language-features/dist/serverWorkerMain --node-ipc --clientProcessId=1330
UserName    1623  0.1  0.4 1080136 142068 ?      Sl   09:25   0:01 /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/node /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/extensions/html-language-features/server/dist/node/htmlServerMain --node-ipc --clientProcessId=1330
UserName    1634  0.0  0.2 1028088 75828 ?       Sl   09:25   0:00 /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/node /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/extensions/css-language-features/server/dist/node/cssServerMain --node-ipc --clientProcessId=1330
UserName    1649  1.1  0.3 22310908 101372 ?     Sl   09:25   0:08 /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/node /home/UserName/.cursor-server/extensions/mads-hartmann.bash-ide-vscode-1.43.0-universal/out/server.js --node-ipc --clientProcessId=1330
UserName    1832  0.0  0.0  10168  9320 pts/3    Ss+  09:25   0:00 /bin/bash --init-file /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-bash.sh
UserName    1963  0.2  0.4 1669204 136432 ?      Sp   09:25   0:01 /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/node --max-old-space-size=15977 /home/UserName/.cursor-server/extensions/anysphere.cursorpyright-1.0.12/dist/server.js --cancellationReceive=file:<160-BIT-TOKEN> --node-ipc --clientProcessId=1330
UserName    1971  0.0  0.1 1092668 62988 ?       Sl   09:25   0:00 /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/node /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/extensions/json-language-features/server/dist/node/jsonServerMain --node-ipc --clientProcessId=1330
UserName    1979  0.1  0.2 1206068 92904 ?       Sl   09:25   0:01 /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/node /home/UserName/.cursor-server/extensions/redhat.vscode-yaml-1.24.0-universal/dist/languageserver.js --node-ipc --clientProcessId=1330
UserName    2482  0.0  0.0  10168  9176 pts/4    Ss   09:25   0:00 /bin/bash --init-file /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-bash.sh
UserName    6818  0.0  0.0   2892  1000 ?        S    09:36   0:00 /bin/sh -c "/home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/out/vs/base/node/cpuUsage.sh" 2482
UserName    6819  0.0  0.0   4784  3300 ?        S    09:36   0:00 /bin/bash /home/UserName/.cursor-server/bin/<160-BIT-TOKEN>/out/vs/base/node/cpuUsage.sh 2482
UserName    6825  0.0  0.0   4032  1960 pts/4    S+   09:36   0:00 grep --color=auto cursor

Does this stop you from using Cursor

Yes - Cursor is unusable

Found the megathread:

Hi @Cloud_Cray Thanks for the report. This isn’t caused by anything in your setup. It’s a known Windows updater issue we’re tracking.

You don’t need to shut down WSL. To make this less likely:

  1. Set update.mode to manual in Settings (Ctrl+,), then restart Cursor. Closing a WSL window won’t start an install.
  2. When you do update, fully quit leftover Cursor/node processes in Task Manager first (they often aren’t named Cursor).
  3. If you get a “files in use” dialog, don’t click Cancel. End those leftover processes, then Retry.

I’ll post here when there’s an update.

Hey @Cloud_Cray — following up as promised. The Windows updater can now recover from an interrupted install instead of leaving Cursor uninstalled. That change first landed in 3.18 and is in the current stable release, 3.19.19.

If you’re already on 3.18.25 or newer, you have it. If not, a download from Cursor · Download will get you the current build. The real test is your next update, so once you’ve seen a clean one you can switch update.mode back to its default. If Cursor ends up uninstalled again after updating from 3.18 or later, reply here and I’ll take another look. Thanks again!