The first thing I do with an MSI log.

If you've dealt wit the Windows Installer at all, you know the fastest way to figure out what went wrong is to look at a verbose log file. The normal log file doesn't provide enough information to really diagnose things going wrong, so I always generate a verbose log file like so:

msiexec /l*v i.txt /i path\to\the.msi

Then I open "i.txt" in notepad.exe and search for "value 3". Yep, the magic is "value 3". Value space three. Let me repeat that:

value 3

Basically, the Windows Installer spits out "value 3" when an action in the installation failed. So if you look up a few lines you'll see the culprit. I bet it's a custom action. <wink/>

 

tags: , , ,

10 Comments

Comment by misch on Monday, August 2, 2010 11:22 PM

The bad thing is, that the Windows Installer is localized so "Return value 3" is localized too. Be aware of logfiles from your international customer.

Comment by Stefan Pavlik on Tuesday, August 3, 2010 1:54 AM

The string "value 3" is fine but what if the customer is using German (or other localization) OS?

Example:
MSI (s) (B8:10) [23:47:18:090]: Note: 1: 2262 2: IsolatedComponent 3: -2147287038
Aktion gestartet um 23:47:18: IsolateComponents.
MSI (s) (B8:10) [23:47:18:090]: Doing action: CostFinalize
Aktion beendet um 23:47:18: IsolateComponents. Rückgabewert 1.

Comment by Mattias Jansson on Wednesday, August 4, 2010 12:16 AM

"Return value 3" would be "Rückgabewert 3" in a German log. Generally speaking, all actions announce their start and finish in the log. You would see something like this:
Action start 08:40:52: IsolateComponents.
Action ended 08:40:52: IsolateComponents. Return value 0.
The latter row contains something that would translate to "Return value".

Comment by Samuel Jack on Thursday, August 5, 2010 9:06 AM

Just been putting this tip into practice - very useful!

Comment by Lee Berg on Thursday, August 5, 2010 1:49 PM

Thanks - just put this to good use, also sent it on to our helpdesk staff!

Comment by philippecp on Friday, August 6, 2010 9:18 AM

First thing I do is open it with WiLogUtl.exe that comes with the windows SDK... I'm not masochistic enough to open a log file in notepad :P

Comment by Eric on Tuesday, August 31, 2010 5:07 AM

Any idea what it's value 3 instead of some other random number (like 1 or 2)?

Comment by Blair on Thursday, September 23, 2010 12:08 AM

Eric,

Custom action return values (http://msdn.microsoft.com/library/aa368072.aspx) get translated into "script" CA return values (http://msdn.microsoft.com/library/aa371254.aspx) and logged that way. Thus, 3 = IDABORT. 1 = IDOK (aka Success!)

Comment by Thomas Deboben on Thursday, January 26, 2012 12:01 AM

Hi all,

the first thing I do with an MSI log is to open with the Microsoft tool "Windows Installer Verbose Log Analyzer" (WiLogUtl.exe).

One Problem is that WiLogUtl.exe support only MSI logs up to MSI version 3.0.0.0.

So if I have a log file from a newer version I first change the version in the first line of the log file using notepad or any better editor.

As example the first line is
=== Verbose logging started: 1/20/2012 8:58:55 Build type: SHIP UNICODE 3.01.4001.5512 Calling process: C:\WINDOWS\system32\msiexec.exe ===

so I change 3.01.4001.5512 to 3.0.0.0 and save the log file. Now WiLogUtl.exe will be able to handle the log file.
Just open the log file an press the "Analyze" button.

Now you get a "Detailed Log File View" dialog from where you could check states, properties etc.

My prefered option is the "HTML Log". Allow Blocked Content is required.
Now you could use the buttons "First Error", "Last Error", "Previous Error" and "Next Error" to navigate.
For better reading the lines are formated in different colors.

When jumping to an error you have to scroll some lines up to find the reason of the error like Rob said in his blog.

Comment by Sergii on Tuesday, October 16, 2012 11:24 AM

Hi guys,

I encourage you to try Legit Log Viewer in favor of legendary Notepad :).

It supports MSI (Windows installer) logs and WiX burn logs out-of-box. And many other formats via XML config files.

Current version doesn't support log headers, so you should remove "=== Verbose logging started:..." string form the beginning of MSI log.

Later we will publish update and add support for log headers. Since I’m personally using it to troubleshoot our installs, it will be sooner than later.

Leave a comment
optional