-
Notifications
You must be signed in to change notification settings - Fork 144
Windows installer exit codes
Jonathan Martin edited this page Sep 28, 2026
·
1 revision
The initial installer (bootstrap) is the process callers observe. Its exit code is a Win32 error code: either one it produces itself, or the inner installer's code passed through unchanged.
Specific install-block failures (helper start, extract, BFE, custom folder, and so on) are recorded in %ProgramData%\Windscribe\installer.log and in the inner installer's error dialog as names such as EXTRACT_FAILED. Those details are not reflected in the process exit code; they collapse to ERROR_INSTALL_FAILURE.
| Name | Value | Cause |
|---|---|---|
ERROR_SUCCESS |
0 | Install completed, or the user ran -help. |
ERROR_INVALID_DRIVE |
15 |
-dir path is not on the system drive. |
ERROR_GEN_FAILURE |
31 | Bootstrap could not generate a cryptographically random suffix for its staging directory. |
ERROR_INSUFFICIENT_BUFFER |
122 |
GetWindowsDirectoryW reported a path longer than MAX_PATH. |
ERROR_BAD_ARGUMENTS |
160 | Invalid command line: wrong argument count, or -dir / -username / -password specified without a value or as an incomplete pair. |
ERROR_ALREADY_EXISTS |
183 | Bootstrap staging directory already exists. Unexpected; may indicate a path leak or tampering. |
ERROR_ELEVATION_REQUIRED |
740 | Process is not running as administrator. |
ERROR_OLD_WIN_VERSION |
1150 | OS is older than Windows 10. |
ERROR_CANCELLED |
1223 | User cancelled: declined the OS-compatibility warning, quit the inner installer UI, or the install run was cancelled. |
ERROR_INSTALL_FAILURE |
1603 | Inner install failed (see installer.log for the specific INSTALLER_ERROR), or the bootstrap failed to extract 7zr.exe or windscribeinstaller.7z. |
ERROR_INSTALL_ALREADY_RUNNING |
1618 | Another Windscribe installer instance already holds the single-instance mutex. |
ERROR_INSTALL_PLATFORM_UNSUPPORTED |
1633 | x64 installer launched on Windows on ARM. Download the ARM64 build. |
ERROR_BAD_USERNAME |
2202 |
-username was an email address. |
These paths return the failing API's GetLastError() (or equivalent) rather than a fixed code. The numeric value is still a Win32 error.
| Source | Typical codes | Cause |
|---|---|---|
Token query (OpenProcessToken / GetTokenInformation) |
ERROR_ACCESS_DENIED (5), ERROR_NO_TOKEN (1008), and similar |
Bootstrap or inner installer could not determine whether the process is elevated. |
| Single-instance mutex |
ERROR_ACCESS_DENIED (5) and similar |
Security descriptor or CreateMutexW failed. |
GetWindowsDirectoryW |
API GetLastError()
|
Could not locate the Windows directory. |
| Staging directory create | API error from CreateDirectory / ACL setup |
Could not create the Administrators+SYSTEM-only staging folder under C:\Windows\Temp. |
CreateProcessW of the inner installer |
ERROR_FILE_NOT_FOUND (2), ERROR_ACCESS_DENIED (5), ERROR_BAD_EXE_FORMAT (193), and similar |
Bootstrap extracted the inner installer but Windows refused to launch it (missing file, AV/Smart App Control, and so on). |
| Pattern | Cause |
|---|---|
Exit code > 0xFFFF (for example 0xC0000005) |
Inner installer crashed or aborted. The value is an NTSTATUS / exception code, not a mapped install error. The bootstrap logs it and, unless -silent, shows a crash dialog. |