Windows installation errors
An installer failed and gave you a number. These pages say what each code actually means, and list the fixes in order of how often each one turns out to be the answer.
We cover installation and file errors, because that is what this site is about. For anything else Windows throws at you, this is not the right place and we would rather say so than pad the list.
- 1603Fatal error during installation
- 0x80070643Fatal error during installation
- 1618Another installation is already in progress. Complete that installation before proceeding with this install.
- 1619This installation package could not be opened. Verify that the package exists and that you can access it.
- 1601The Windows Installer Service could not be accessed.
- 1638Another version of this product is already installed. Installation of this version cannot continue.
- 2502 and 2503The installer has encountered an unexpected error installing this package. Called RunScript when not marked in progress.
- 0x80070570The file or directory is corrupted and unreadable.
- 0x80004005Unspecified error
- 1935An error occurred during the installation of assembly component
- 0x80070005Access is denied
- 0x800f081fThe source files could not be found
- 0x80070002The system cannot find the file specified
- 1722There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected.
- 1327Error 1327. Invalid Drive: X:\
- 1606Error 1606. Could not access network location
- 1310Error 1310. Error writing to file. Verify that you have access to that directory.
- 1402Error 1402. Could not open key: HKEY_LOCAL_MACHINE\...
- 1625This installation is forbidden by system policy. Contact your system administrator.
- 1620This installation package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer package.
- 1721There is a problem with this Windows Installer package. A program required for this install to complete could not be run.
- 0x8007000dThe data is invalid
- 1719The Windows Installer Service could not be accessed. This can occur if the Windows Installer is not correctly installed.
- 1605This action is only valid for products that are currently installed.
- 1633This installation package is not supported by this processor type. Contact your product vendor.
- 1612The installation source for this product is not available. Verify that the source exists and that you can access it.
- 1904Module C:\...\file.dll failed to register. HRESULT -2147024770.
Every Windows Installer code, in one table
The list is finite and the numbers never change, so here it is in full. The linked ones have a page of their own because they need more than a line; for the rest, the line is the answer.
| Code | What Windows means by it |
|---|---|
| 1601 | The Windows Installer service could not be started. |
| 1602 | The user cancelled the installation. |
| 1603 | Fatal error during installation. The catch-all: read the log. |
| 1604 | Installation suspended, incomplete. |
| 1605 | This action is only valid for products that are currently installed. |
| 1606 | Could not access network location. |
| 1607 | The components for configuring the installer are not installed. |
| 1608 | Could not find any previously installed compliant products. |
| 1609 | An error occurred while applying security settings. |
| 1610 | The setup files are corrupted or missing. |
| 1611 | The installation media is invalid. |
| 1612 | The installation source for this product is not available. |
| 1613 | This package cannot be installed by this version of Windows Installer. |
| 1614 | The product is uninstalled. |
| 1615 | The SQL query syntax is invalid or unsupported. |
| 1616 | The record field does not exist. |
| 1618 | Another installation is already in progress. |
| 1619 | This installation package could not be opened. |
| 1620 | This installation package could not be opened: it may not be a valid package. |
| 1621 | There was an error starting the Windows Installer service user interface. |
| 1622 | There was an error opening the installation log file. |
| 1623 | This language of this installation package is not supported by your system. |
| 1624 | There was an error applying transforms. |
| 1625 | This installation is forbidden by system policy. |
| 1626 | The function could not be executed. |
| 1627 | The function failed during execution. |
| 1628 | An invalid or unknown table was specified. |
| 1629 | The data supplied is the wrong type. |
| 1630 | Data of this type is not supported. |
| 1631 | The Windows Installer service failed to start. |
| 1632 | The Temp folder is full or inaccessible. |
| 1633 | This installation package is not supported by this processor type. |
| 1634 | Component is not used on this machine. |
| 1635 | This patch package could not be opened. |
| 1636 | This patch package could not be opened: it may not be a valid package. |
| 1637 | This patch package cannot be processed by this version of Windows Installer. |
| 1638 | Another version of this product is already installed. |
| 1639 | Invalid command line argument. |
| 1640 | Installation from a Terminal Server client session is not permitted. |
| 1641 | The installer has started a reboot. |
| 1642 | The installer cannot install the upgrade patch: the product may have been updated. |
| 3010 | Success, but a restart is required. Not a failure. |
Codes beginning 0x8007 are different: those are Windows error codes wrapped by the installer, and the last four hexadecimal digits are the real one. Several of them have their own page above.
The step almost nobody takes
Before debugging an installer, confirm the installer is intact. A truncated or modified download produces errors that look like configuration problems and waste hours. Check the file's SHA-256 against our index first: it takes seconds and rules out an entire category of cause.
Common questions
- How do I get a verbose log from a Windows installer?
- For an MSI, run msiexec /i "package.msi" /L*v "%TEMP%\install.log" from a command prompt and open the file it writes. Many downloads are an .exe wrapping an MSI instead, and those usually accept /log or /l with a path of their own; where a program declares its own switches we list them on its page. The log is the difference between guessing and knowing, and for a code as generic as 1603 it is the only real way forward.
- What do I look for in an installer log?
- Search it for "Return value 3". Windows Installer records a return value for every action it runs, and 3 is the one that means the action failed, so the lines immediately above it name what was actually being attempted when everything stopped. That is the cause. The error code you saw on screen is only the summary that got reported afterwards.
- Why does the same failure show a different code each time?
- Because several layers each report it their own way. Windows Installer has its own numbers, the wrapper around it has others, and Windows itself wraps failures again as hexadecimal HRESULTs. That is why the same underlying problem can appear as a four-digit number in one place and an 0x8007 value in another, and why the four hex digits at the end of those are worth converting: they are usually the original code.
- Is a failed install always the installer’s fault?
- Often it is not. A truncated download, a previous version that did not uninstall cleanly, a locked file held by a running process, or a policy on a managed machine all produce errors that read like the installer is broken. Confirming the file matches its published hash removes the first of those in seconds, which is why it is worth doing before anything else.