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>


  • Hi.

    I had no luck trying this...i searched the log file but no "return value 3" was found, so could i email the log to you?

    I've had no luck installing .NET Framework 3.5 SP1 for days on end now...just constant error and failing and crashing of the setup.exe.

    Thanks, Ryan.

  • Hi Ryani210693 - Can you please use the tool described at http://blogs.msdn.com/astebner/archive/2007/08/01/4172276.aspx to gather your .NET Framework 3.5 SP1 setup log files, then post the file vslogs.cab that this tool produces on a file server (such as http://skydrive.live.com) and then reply here with a link to the log files?  I will download them and take a look and see what I can figure out about the root cause of the setup failure from there.

  • Hi.

    The file is located at http://www.nowwebsitedesign.co.uk/other/vslogs.cab

    Cheers for your help on this! Much appreciated. Ryan.

  • Hi Ryani210693 - The logs you attached show that you're running Windows Vista, but that the OS component for the .NET Framework 3.0 is not enabled.  .NET Framework 3.5 SP1 tries to enable that OS component by running the following command:

    C:\Windows\system32\OCSetup.exe NetFx3

    However, that command is failing on your system.  The cbs.log file that you included in your logs shows this error:

    2009-07-29 03:49:47, Info                  CBS    Pkgmgr: Installing selectable updates for package: Windows Foundation...

    2009-07-29 03:49:48, Info                  CBS    Mark store corruption flag because of package: Package_for_KB905866~31bf3856ad364e35~x86~~ hr: 0x800b0100

    2009-07-29 03:49:48, Error                 CBS    Pkgmgr: Failed installing selectable updates for: Windows Foundation, hr: 0x800b0100

    2009-07-29 03:49:48, Info                  CBS    Pkgmgr: return code: 0x800b0100

    I would suggest trying to use the CheckSUR tool with the steps listed in the blog post at http://blogs.msdn.com/astebner/archive/2009/01/09/9303167.aspx to try to solve this.

    Hopefully this helps.

  • Thanks for that.

    Here is the log from the CheckSUR


    Checking System Update Readiness.

    Binary Version 6.0.6001.22375

    Package Version 5.0

    2009-07-30 03:31

    Checking Deployment Packages

    Checking Package Manifests and catalogs.

    Checking package watchlist.

    Checking component watchlist.

    Checking packages.

    (f) CBS MUM Missing 0x00000002 servicing\packages\Package_for_KB905866_client_1~31bf3856ad364e35~x86~~

    (f) CBS MUM Missing 0x00000002 servicing\packages\Package_for_KB905866_client~31bf3856ad364e35~x86~~

    (f) CBS MUM Missing 0x00000002 servicing\packages\Package_for_KB905866~31bf3856ad364e35~x86~~

    Checking component store


    Seconds executed: 3832

    Found 3 errors

     CBS MUM Missing Total Count: 3

    Do I delete them registry folders or just the "InstallName" .mum key?

    Thanks, Ryan.

  • Hi Ryani210693 - What I'd suggest doing in this scenario is renaming the sub-keys under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\<package_name> that refer to those 3 .mum files.  I'd suggest renaming rather than deleting - you can rename them back in case there something goes wrong.  After renaming, you can try again to install the .NET Framework 3.0 OS component by running OptionalFeatures.exe, checking the item named Microsoft .NET Framework 3.0 (it doesn't matter if the 3 child items under that are checked or not), and clicking OK to try to install it.

  • Hi.

    I would give that a go...but the OptionalFeatures.exe list of items shows blank strangely? I looked this up and came across the System File Checker Scan- http://support.microsoft.com/kb/931712

    I ran the scan but it said it could not fix some corrupt files, but said that the same CBS type logs were created again. I feel like I'm going round in circles!

    Do i have to go through the OptionalFeatures.exe? Can i simply downlaod the .NET Framework 3.5 SP1 package?

    Apologies for the many questions...thanks, for your help! Ryan.

  • Hi Ryani210693 - If your Windows Features dialog is still blank after renaming those registry values, then that means there is still something wrong with your OS update installation engine, and .NET 3.5 SP1 will end up failing for the same reason.

    I described how I have solved that issue with the blank Windows Features dialog in the blog post I previously linked to - http://blogs.msdn.com/astebner/archive/2009/01/09/9303167.aspx.  Can you try to re-run CheckSUR and see if it shows any additional errors and try to work around those as well?

  • When attempting to actually rename the keys i get this error- http://www.grabup.com/uploads/4100311A07732009B901E3002E04.png?direct

    I've ran regedit as administrator and also tried to change permissions, but similar error messages occur.

  • Hi Ryani210693 - I'd suggest trying to rename the subkey instead of just the InstallName value.  If that gives the same error, you may need to right-click on the sub-key, choose Permissions... and grant your user account full control over that sub-key so that you can successfully rename it.

  • Hi.

    I managed to successfully change permissions and rename the keys.

    I loaded up OptionalFeatures.exe once again yet the list remains blank.

    I shall re-run the CheckSUR and report back!

    Thanks, Ryan.

  • Hi.

    I have now deleted the keys after making a backup, and the OptionalFeatures.exe now shows the list.

    I have ticked the Microsoft .NET Framework 3.0 option, and there were no errors or the like. So does this mean it is installed? I cannot see it in the list of installed programs/features?

    Is it now possible for me to install 3.5 SP1 on top of this without any errors?

    Thanks for your help once again, Ryan.

  • Hi Ryani210693 - OS components that are listed in the Windows Features dialog only appear there and are not listed in the Programs and Features dialog (that is reserved for applications you install afterwards, not for OS components).

    Now that you've gotten the .NET Framework 3.0 component enabled, you should be able to run .NET Framework 3.5 SP1 setup on your system.  If you try it and still encounter errors, please post an updated set of log files so I can take a further look.

    One other thing - now that you've fixed the blank Windows Features dialog that you were seeing, I suggest checking Windows Update for any hotfixes that you might be missing.  In the cases I've seen in the past, when a system is in the state that the Windows Features dialog is blank, Windows Update will think that it doesn't need to offer you any hotfixes, so you might be missing some important security fixes on this system as a result.

  • Hi.

    Success! Both installed and running fine. The help has been extremely valuable and a great method of looking at the logs that may help in the future for any problems!

    I had to delete the keys, not just rename them for  this to work. Then OptionalFeatures.exe worked, allowing me to have 3.0 installed. On top of that, Windows Update then successfully installed 3.5 SP1 that was waiting to be installed.

    Thanks once again for the help! Ryan.

  • Hi! I am unable to install the .NET Framework 3.0 on my Windows XP Pro laptop. I followed the above steps and I do a dd_wcf_retMSI704C.txt file that got created.

    MSI (s) (6C:E0) [15:15:58:712]: Hello, I'm your 32bit Elevated custom action server.

    MSI (s) (6C:E4) [15:16:10:852]: User policy value 'DisableRollback' is 0

    MSI (s) (6C:E4) [15:16:10:852]: Machine policy value 'DisableRollback' is 0

    Action ended 15:16:10: InstallFinalize. Return value 3.

    MSI (s) (6C:E4) [15:16:10:852]: Executing op: Header(Signature=1397708873,Version=301,Timestamp=990542326,LangId=0,Platform=0,ScriptType=2,ScriptMajorVersion=21,ScriptMinorVersion=4,ScriptAttributes=1)

    MSI (s) (6C:E4) [15:16:10:852]: Executing op: DialogInfo(Type=0,Argument=0)

    MSI (s) (6C:E4) [15:16:10:852]: Executing op: DialogInfo(Type=1,Argument=Windows Communication Foundation)

    MSI (s) (6C:E4) [15:16:10:852]: Executing op: RollbackInfo(,RollbackAction=Rollback,RollbackDescription=Rolling back action:,RollbackTemplate=[1],CleanupAction=RollbackCleanup,CleanupDescription=Removing backup files,CleanupTemplate=File: [1])

    MSI (s) (6C:E4) [15:16:10:852]: Executing op: ActionStart(Name=DD_CA_InstallXwsRegExe_X86.3643236F_FC70_11D3_A536_0090278A1BB8,,)

    MSI (s) (6C:E4) [15:16:10:852]: Executing op: ProductInfo(ProductKey={491DD792-AD81-429C-9EB4-86DD3D22E333},ProductName=Windows Communication Foundation,PackageName=wcf.msi,Language=0,Version=50336154,Assignment=1,ObsoleteArg=0,,,PackageCode={A63B31E5-2445-4C91-BD89-4532D7F4D434},,,InstanceType=0,LUASetting=0,RemoteURTInstalls=0)

    MSI (s) (6C:E4) [15:16:10:868]: Executing op: ActionStart(Name=DD_CA_InstallXwsRegExe_RB_X86.3643236F_FC70_11D3_A536_0090278A1BB8,,)

    MSI (s) (6C:E4) [15:16:10:868]: Executing op: CustomActionRollback(Action=DD_CA_InstallXwsRegExe_RB_X86.3643236F_FC70_11D3_A536_0090278A1BB8,ActionType=1345,Source=BinaryData,Target=QuietExec,CustomActionData=C:\WINDOWS\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe /u /x /y /v;dummy;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\)

    MSI (s) (6C:38) [15:16:10:899]: Invoking remote custom action. DLL: C:\WINDOWS\Installer\MSI36.tmp, Entrypoint: QuietExec

    MSI (s) (6C:E4) [15:16:14:133]: Executing op: ActionStart(Name=WriteRegistryValues,Description=Writing system registry values,Template=Key: [1], Name: [2], Value: [3])

    MSI (s) (6C:E4) [15:16:14:133]: Executing op: RegOpenKey(Root=-2147483646,Key=SYSTEM\CurrentControlSet\Services\SMSvcHost\Performance,,BinaryType=0)

    Any help would be appreciated.

Page 4 of 8 (107 items) «23456»
Leave a Comment
  • Please add 8 and 8 and type the answer here:
  • Post