Windows Installer error codes are numeric messages returned by failed or completed installations. These codes often lack context, but understanding them can help you resolve issues faster. If you’re staring at an unexpected error code that may as well be a message written in Vulcan, we can help. This guide explains common codes, how to interpret them, and tools to help you interpret that noninformative Windows Installer error code.
Windows doesn’t have the best reputation when it comes to providing descriptive error messages. Depending on the situation, you may not even receive an error message. For example, if you’re running a Windows Installer, you may be provided a very informative error code like 1603 … Wow, thanks Microsoft. Very insightful.
What is an error code?
An error code is a numeric value returned by Windows Installer (or other programs) when a process finishes. While some codes mean success (like 0), others like 1603 signal install failures. These codes help diagnose install issues, even when messages are vague. Microsoft has a list of predefined error codes used by the Windows Installer (msiexec.exe) utility, but third-party vendors may utilize their own list of error codes.
The term error code can be a bit misleading since they also frequently indicate success, so you might also see them called exit or return codes.
How do I use the Microsoft Error Lookup Tool?
If you’re looking for a local resource to help you identify installer error codes, why not try the Microsoft Error Lookup Tool? The Error Lookup Tool is a simple command-line tool that can help identify error codes. Best of all, it doesn’t require you to install anything or use elevated admin rights. Here’s how to use it.
Download the Error Lookup Tool from Microsoft.
Type cmd into the Windows search bar, then click on Command Prompt.
In the console window, enter the path to the utility, followed by the utility name and the error code, then run the command.
From the results, we can see that the error code 1641 indicates a process completed successfully and the Windows Installer package initiated a reboot.
How can I look up error codes with CertUtil?
CertUtil is another local resource that can be utilized to identify error codes. The great thing about CertUtil is that you shouldn’t have to download anything since it comes natively installed with Windows operating systems. Here’s how to use it.
Launch Command Prompt.
Enter CertUtil /error followed by the error number into the console, then run the command.
In this example, I searched for the error code 128. This error code indicates that no child processes were found. It is commonly returned when a script tries to stop a process that doesn’t exist.
Install (and uninstall) without disruption
Try PDQ Deploy & Inventory — free for 14 days.
Microsoft’s list of error codes
Microsoft publishes extensive lists of Windows Installer error codes, organized by number ranges. You can browse these lists online to look up the meaning of specific system or installer codes.
Simply click on the link associated with the error code number and scroll through the list until you find the code you’re looking for. While I would prefer my Windows Installer error messages brimming with useful information and maybe a motivational quote, a massive error code list straight from the source also works.
PDQ’s list of error codes
If you’ve looked at the error code lists provided by Microsoft, you’ll know that there are thousands of error codes out there. And that’s not including third-party installers. While the list of error codes may seem daunting, the truth is that you’ll probably only ever encounter a handful of error codes. That’s why we’ve built our own list of error codes.
PDQ’s list of common deployment error codes is designed to help users quickly identify error codes they’re likely to experience, leaving all the clutter for the other lists. We developed the list from our years of experience in troubleshooting installs and deployments. With millions of deployments and installs under our belts, it’s safe to say we know a thing or two when it comes to installs and error codes.
There are a couple of other features that set our list apart from other lists out there. We provide in-depth information about many of the error codes on the list, giving examples of when and why you might encounter a specific error. We also include common error codes that you may encounter with non-MSI installers.
What is the 1603 error code?
Windows Installer Error 1603 means "Fatal error during installation."
It's perhaps the most common error code thrown by installers that actually indicates a problem with the installation package. It's dreaded because it seems to be a catchall for numerous problems you could encounter during an installation process. Again, thanks Microsoft.
To help shed a little more light on this troublesome error code, here are a few possible reasons you may encounter 1603.
Additional files or resources are required
Antivirus could be deleting install files
You’re attempting to install to an encrypted drive or directory
SYSTEM account doesn’t have the necessary permissions on the target directory
A file is locked and can’t be overwritten
Unfortunately, there is no single solution to resolve these problems. It’ll take some detective work on your part.
The first and probably easiest thing to check is whether the installation has access to all the required install files. If the install files are on a network location, ensure the location is reachable by the account running the installation. If this is part of a software deployment using PDQ Deploy, ensure you've checked the setting to include the entire directory if necessary. Also, make sure your antivirus solution isn’t deleting necessary files on accident.
Another important troubleshooting step is to enable verbose logging when running the install. Run the installation with these additional parameters to generate a verbose log file:
msiexec /i <installer.msi> /l*v c:\log\install.log
Verbose logging should help you zero in on the exact cause of the 1603 error.
Don’t let error codes get you down
If there was one thing I could immediately improve about the Windows operating system, it would be its error messages. While I’m sure there are deep-rooted technical reasons why we get gibberish for error messages, it sure would be nice to have a descriptive error message written in plain English. Maybe one day. Until then, hopefully this article helps you diagnose your own error messages.
Make sure to use this newfound knowledge to enhance your deployments with PDQ Connect or PDQ Deploy & Inventory. Not already a proud member of the PDQ family? No problem! Try it free for 14 days.