MSI: Windows Installer
Contents
Windows Installer error codes
This is a list of Windows Installer (msiexec) exit codes and error messages returned by functions MsiExec.exe and InstMsi.exe, with descriptions:
Value | Description | Error code |
0 | Action completed successfully. | ERROR_SUCCESS |
13 | The data is invalid. | ERROR_INVALID_DATA |
87 | One of the parameters was invalid. | ERROR_INVALID_PARAMETER |
120 | This function is not available for this platform. It is only available on Windows 2000 and Windows XP with Window Installer version 2.0. | ERROR_CALL_NOT_IMPLEMENTED |
1259 | This error code only occurs when using Windows Installer version 2.0 and Windows XP or later. If Windows Installer determines a product may be incompatible with the current operating system, it displays a dialog informing the user and asking whether to try to install anyway. This error code is returned if the user chooses not to try the installation. | ERROR_APPHELP_BLOCK |
1601 | The Windows Installer service could not be accessed. Contact your support personnel to verify that the Windows Installer service is properly registered. | ERROR_INSTALL_SERVICE_FAILURE |
1602 | User cancel installation. | ERROR_INSTALL_USEREXIT |
1603 | Fatal error during installation. | ERROR_INSTALL_FAILURE |
1604 | Installation suspended, incomplete. | ERROR_INSTALL_SUSPEND |
1605 | This action is only valid for products that are currently installed. | ERROR_UNKNOWN_PRODUCT |
1606 | Feature ID not registered. | ERROR_UNKNOWN_FEATURE |
1607 | Component ID not registered. | ERROR_UNKNOWN_COMPONENT |
1608 | Unknown property. | ERROR_UNKNOWN_PROPERTY |
1609 | Handle is in an invalid state. | ERROR_INVALID_HANDLE_STATE |
1610 | The configuration data for this product is corrupt. Contact your support personnel. | ERROR_BAD_CONFIGURATION |
1611 | Component qualifier not present. | ERROR_INDEX_ABSENT |
1612 | The installation source for this product is not available. Verify that the source exists and that you can access it. | ERROR_INSTALL_SOURCE_ABSENT |
1613 | This installation package cannot be installed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service. | ERROR_INSTALL_PACKAGE_VERSION |
1614 | Product is uninstalled. | ERROR_PRODUCT_UNINSTALLED |
1615 | SQL query syntax invalid or unsupported. | ERROR_BAD_QUERY_SYNTAX |
1616 | Record field does not exist. | ERROR_INVALID_FIELD |
1618 | Another installation is already in progress. Complete that installation before proceeding with this install. | ERROR_INSTALL_ALREADY_RUNNING |
1619 | This installation package could not be opened. Verify that the package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer package. | ERROR_INSTALL_PACKAGE_OPEN_FAILED |
1620 | This installation package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer package. | ERROR_INSTALL_PACKAGE_INVALID |
1621 | There was an error starting the Windows Installer service user interface. Contact your support personnel. | ERROR_INSTALL_UI_FAILURE |
1622 | Error opening installation log file. Verify that the specified log file location exists and is writable. | ERROR_INSTALL_LOG_FAILURE |
1623 | This language of this installation package is not supported by your system. | ERROR_INSTALL_LANGUAGE_UNSUPPORTED |
1624 | Error applying transforms. Verify that the specified transform paths are valid. | ERROR_INSTALL_TRANSFORM_FAILURE |
1625 | This installation is forbidden by system policy. Contact your system administrator. | ERROR_INSTALL_PACKAGE_REJECTED |
1626 | Function could not be executed. | ERROR_FUNCTION_NOT_CALLED |
1627 | Function failed during execution. | ERROR_FUNCTION_FAILED |
1628 | Invalid or unknown table specified. | ERROR_INVALID_TABLE |
1629 | Data supplied is of wrong type. | ERROR_DATATYPE_MISMATCH |
1630 | Data of this type is not supported. | ERROR_UNSUPPORTED_TYPE |
1631 | The Windows Installer service failed to start. Contact your support personnel. | ERROR_CREATE_FAILED |
1632 | The temp folder is either full or inaccessible. Verify that the temp folder exists and that you can write to it. | ERROR_INSTALL_TEMP_UNWRITABLE |
1633 | This installation package is not supported on this platform. Contact your application vendor. | ERROR_INSTALL_PLATFORM_UNSUPPORTED |
1634 | Component not used on this machine | ERROR_INSTALL_NOTUSED |
1635 | This patch package could not be opened. Verify that the patch package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer patch package. | ERROR_PATCH_PACKAGE_OPEN_FAILED |
1636 | This patch package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer patch package. | ERROR_PATCH_PACKAGE_INVALID |
1637 | This patch package cannot be processed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service. | ERROR_PATCH_PACKAGE_UNSUPPORTED |
1638 | Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel. | ERROR_PRODUCT_VERSION |
1639 | Invalid command line argument. Consult the Windows Installer SDK for detailed command line help. | ERROR_INVALID_COMMAND_LINE |
1640 | Installation from a Terminal Server client session not permitted for current user. | ERROR_INSTALL_REMOTE_DISALLOWED |
1641 | The installer has started a reboot. This error code not available on Windows Installer version 1.0. | ERROR_SUCCESS_REBOOT_INITIATED |
1642 | The installer cannot install the upgrade patch because the program being upgraded may be missing or the upgrade patch updates a different version of the program. Verify that the program to be upgraded exists on your computer and that you have the correct upgrade patch.
This error code is not available on Windows Installer version 1.0. |
ERROR_PATCH_TARGET_NOT_FOUND |
1643 | The patch package is not permitted by system policy. This error code is available with Windows Installer versions 2.0 or later. | ERROR_PATCH_PACKAGE_REJECTED |
1644 | One or more customizations are not permitted by system policy. This error code is available with Windows Installer versions 2.0 or later. | ERROR_INSTALL_TRANSFORM_REJECTED |
3010 | A reboot is required to complete the install. This does not include installs where the ForceReboot action is run. This error code not available on Windows Installer version 1.0. | ERROR_SUCCESS_REBOOT_REQUIRED |
Tips
How to find an uninstall GUID
Most MSI packages support using the MSI file instead of the GUID, only in rare cases one needs to use the GUID, which can be retrieved in the following ways.
Using Orca
This method does not require you to install the MSI before finding the uninstall string or GUID.
- You will need to install Orca on you own machine, which is a MSI inspector/editor. (There are various ways to obtain this. Perhaps best to start here: https://msdn.microsoft.com/en-us/library/windows/desktop/aa370557(v=vs.85).aspx)
- Open the MSI in Orca
- Select the `Property` table in the left hand column
- Note the `ProductName` and `ProductCode` values. You can right-click to copy and paste cell values.
[Insert screenshot]
The ProductName can normally be used as the check path value for an uninstall check. The ProductCode can normally be used within the remove command for an MSI.
So for the above screenshot:
<package id="dell_wlan_hotkey" name="Network Driver GPW8G WN32 1.0.0.5 A01" revision="2016015.1" reboot="false" priority="0"> <check type="uninstall" condition="exists" path="Dell WLAN Hotkey Driver" /> <install cmd='msiexec /i "%software\delldrivers\HKDellDrSetup64.msi" /norestart /qn' > <exit code='3010' reboot="delayed" /> <exit code='0' /> </install> <upgrade include="install" /> <remove cmd='msiexec /x {1845470B-EB14-4ABC-835B-E36C693DC07D} /qn /norestart' > <exit code='3010' reboot="delayed" /> <exit code='0' /> </remove> </package>
Using the uninstall log
- install your msi on a PC using the following command:
msiexec /i MyPackage.msi
- then uninstall the package with verbose logging so you can look at the log for the GUID using this command:
msiexec /x MyPackage.msi /lv c:\uninstall_log.txt
Using regedit
- Install the package
- in regedit open and select the following folder
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
- on a 64bit Windows, check also following folder
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
- Then search for the name of your application from that point onwards by pressing Ctrl+F
- Once you've found the folder, the name of the folder should be the GUID you want.
Hint: most of the time there'll be a value called uninstallstring in the folder with the command to uninstall the product.
Using WMI Commandline
- open a CMD Shell as administrator
- enter following command for displaying the GUID (for the uninstall process) and the associating Display Name (for check process):
wmic product get Name, IdentifyingNumber
Hint: for few applications you cannot obtain the needed information in this way. You should use one of the other solutions.