Aaron Stebner's WebLog

Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio

How to locate the cause of error code 1603 in a verbose MSI log file

How to locate the cause of error code 1603 in a verbose MSI log file

Rate This

There is a trick I use very often when trying to figure out why an MSI-based setup is failing that I wanted to share with everyone.  I believe it is commonly known among setup developers and people who have to troubleshoot failed setups, but I could not find any "official" documentation for it.  This trick helps narrow down the root cause of error code 1603, which is a generic catch-all error code that means "fatal error during installation".  The 1603 error code is returned when any action fails during an installation, and most commonly it indicates that one of the custom actions in the MSI failed.

When I encounter a failed setup with return code 1603, here are the steps that I follow:

  1. Re-run the setup with verbose logging enabled using steps similar to those that I listed here (if there is not already a verbose log file available).  Those steps will generate a verbose log file named msi*.log in the %temp% directory the next time the setup package is executed.

    Important note - some MSI-based setups, including the .NET Framework 2.0, 3.0, 3.5 and higher and Visual Studio, will not create log files named %temp%\msi*.log even if using the instructions listed below.  Please see this blog post for more details about why that is the case and also for a list of some products that I know of that use different log file creation logic and the locations of the log files that they create.

  2. Open the verbose log in a text editor such as notepad and search for the string "return value 3".  In nearly all cases, this takes me to the section in the verbose log that lists the action that failed that initially caused setup to rollback.
  3. Review the contents of the log file immediately above the "return value 3" string to determine which custom action or standard action failed.
  4. Depending on which action is failing, I will proceed to more detailed debugging from here

I find that the biggest hurdle to debugging a failed setup is often zeroing in on which part of the setup is actually failing, and this trick of searching for "return value 3" ends up helping speed this process up in nearly all cases.  Of course, it does not work in 100% of scenarios.  Notably, if you are running setup on a non-English version of Windows, the string "return value 3" is written to the log file in the language of the operating system instead of in English, so string searches will not work.

Also note that there is an MSI verbose log parsing tool in the Windows Installer PSDK that is also very useful in locating errors inside verbose log files.  You can read more about this parsing tool (called wilogutl.exe) by clicking here.  This tool is more thorough in identifying errors, but most often I end up not using it because it is faster to open the log in notepad and do a string search than it is to load up the parsing tool, browse to the log file, wait for it to parse the whole log and then read the output it produces.

<update date="1/21/2009"> Added a caveat to these instructions indicating that some setups create their own verbose logs and enabling verbose logging using the Windows Installer logging registry keys will not work as expected for those setups. </update>

 

  • I have had a few customers report problems installing the .NET Framework 2.0 with the following symptoms:...
  • I have had a few customers report problems installing the .NET Framework 2.0 with the following symptoms:...
  • A little while back I described a method of searching for errors in a verbose MSI log file.&amp;nbsp; At...
  • A little while back I described a method of searching for errors in a verbose MSI log file.&amp;nbsp; At...
  • I get an error
    [08/23/06,14:41:31] Windows Communication Foundation: ***ERRORLOG EVENT*** : Error: Installation failed for component Windows Communication Foundation. MSI returned error code 1603
    [08/23/06,14:41:56] WapUI: ***ERRORLOG EVENT*** : DepCheck indicates Microsoft .NET Framework 3.0 - was not attempted to be installed.

    i followed the steps as above to find the error in msi*.log file. I did not find any "return value 3", instead all where "return value 1". What should I do now?

    Any help would be appreciated. I am running WinXP Sp2.

    Thanks
    Urvashi


  • Hi Ubhatnagar - Can you check and see if you have any error logs named dd_*msi*.txt in your %temp% directory?  The log file you are currently looking in is not a verbose MSI log, so you will not see "return value 3" in that log.  If you are unable to find the log with the error, please zip and send me any logs named %temp%\dd_*msi*.txt at Aaron.Stebner (at) Microsoft (dot) com and I will try to help you find the root cause.
  • I received a mail from a customer this week regarding an installation failure that proved to be fairly...
  • Hi Aaron ,

    I'm getting a WFC not found error during the installation of the .Net Framework 3.0 Redist. Pack.

    I recently tried to install the WFC , but couldn't achieved.

    Could you please advice ?

    Thanks in advance

    //------------------//

    [11/26/06,07:27:10] Windows Workflow Foundation: [2] Error: Installation failed for component Windows Workflow Foundation. MSI returned error code 1603

    [11/26/06,07:27:40] WapUI: [2] DepCheck indicates Windows Workflow Foundation is not installed.

    [11/26/06,07:27:40] WapUI: [2] DepCheck indicates Microsoft .NET Framework 3.0 was not attempted to be installed.

  • Hi Bahadir - There is a full list of log files produced by the .NET Framework 3.0 setup package at http://blogs.msdn.com/astebner/archive/2006/10/30/net-framework-3-0-setup-log-files.aspx.

    In this case, the log file named %temp%\dd_WF_3.0_x86retMSI*.txt should contain the exact error information for this failure.  Can you please check and see if you have this log, and send it to me via email at Aaron.Stebner (at) Microsoft (dot) com so I can take a look and see if I can figure anything out?

  • To resolve this issue, reinstall all .Net 3.0 product by using .Net 3.0 Uninstaller tool.

    Open machine.config file of .Net 2.0 Framework and change encoding format from UTF-8 to UTF-16.

  • I often get asked questions about how to read, interpret and find error information in verbose Windows

  • Rob Mensching, father of Windows Installer XML (WiX), blogs about why managed custom actions are a bad

  • Rob Mensching, father of Windows Installer XML (WiX), blogs about why managed custom actions are a bad

  • Problems when installing .NET Framework 3.5 (Pre-Release Version)

  • Neat Tip To Enable Verbose Installer Logging

Page 1 of 7 (100 items) 12345»
Leave a Comment
  • Please add 6 and 5 and type the answer here:
  • Post