[Bug] Cursor fails to initialize on Windows 11 LTSC IoT: COM/ShellExecute errors (0x800401F5)

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Cursor IDE fails to initialize the login workflow on Windows 11 LTSC IoT (Build 26100). Clicking “Log In” results in an immediate freeze of the UI and internal 0x800401F5 (CO_E_CLASSSTRING) COM errors in the main process logs. The application cannot invoke the system shell to open the authentication URL, likely due to a hardcoded dependency on Microsoft Edge’s COM shell extensions which are absent in this Windows edition. Furthermore, the machineId generator fails due to restricted WMI/CIM access in the IoT build, causing a crash loop.

Steps to Reproduce

Install Cursor on Windows 11 LTSC IoT.

Launch the application.

Click the “Log In” button.

Observe that the UI freezes; no browser window is opened; console logs show persistent Error: Failed to open: Nie można odnaleźć aplikacji (0x800401F5).

Expected Behavior

The application should either open the default system browser for OAuth or provide a fallback mechanism (e.g., printing the auth URL to the console or spawning a local HTTP server for token capture) when system shell integration is unavailable.

Actual Behavior:
The UI becomes unresponsive, and the main process terminates the authentication attempt due to missing system-level COM classes and WMI hardware identifier access.

Additional Information:
The issue appears to be caused by Cursor’s reliance on Windows-native COM interfaces (specifically Edge-related shell extensions) that are missing in LTSC/IoT builds. Providing a flag to disable browser-launching and enabling a CLI-based login (similar to code --login-via-cli) would resolve this for professional users on stripped-down Windows versions.

Operating System

Windows 10/11

Version Information

IDE: 3.5.17

Additional Information

Issue occurs on Windows 11 LTSC IoT. The system environment prevents native protocol/URI handling for shell execution (0x800401F5 error), making it impossible for the IDE to trigger the default browser for OAuth/Log-in. The WMI/CIM environment also lacks standard hardware identifier classes required for machineId generation, leading to launch-time exceptions in the Electron main process.

Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

Hey, thanks for the detailed report.

The issue is that Windows 11 LTSC IoT doesn’t include Edge and the related COM shell extensions that Electron relies on when calling shell.openExternal() to open an OAuth URL. That’s why you’re seeing 0x800401F5 (CO_E_CLASSSTRING). This is a platform limitation, not a Cursor regression.

A workaround that should help:

  • Install any normal browser like Chrome, Firefox, Brave, anything that isn’t LTSC-stripped
  • Open Cursor Settings Ctrl+Shift+, find workbench.externalBrowser, and set the full path to the browser exe, for example:
    C:\Program Files\Google\Chrome\Application\chrome.exe
    
  • Restart Cursor and try logging in again

With this setting, Cursor uses the npm package open with the path you provided directly, bypassing ShellExecute and COM.

About machineId and the crash loop: the code has a fallback to a generated UUID if REG.exe or WMI are unavailable, so that alone shouldn’t crash the process. If login still doesn’t work after the workaround above, please send the logs from Help > Toggle Developer Tools > Console and the output from %APPDATA%\Cursor\logs\ from the latest session, and we’ll look into what’s failing.