Windows Installer Verbose Logging

I have had a few questions lately from various team members that some MSI verbose (L*v) logs do not show "Installed successfully".

We have various members using various Windows Installer authoring tools such as Wise or WPS, WIX, Installshield.....

With Windows Installer logging return value reference guides from https://msdn.microsoft.com/en-us/library/aa369778(v=vs.85).aspx

Am I right relaying the message that

Excluding the rollback action, a success is indicative by a “return value 1” for all actions expected to be processed including the last action of InstallFinalize of 1.

Obviously there are return values of 0 like when a previous product is not installed and therefore removeexistingproducts action would return 0.

In the past, I have looked for errors such as return value 2, 3, 4 etc....and just ensure my last action of installfinalize is 1.

0 Comments   [ + ] Show comments

Answers (2)

Posted by: Pressanykey 5 years ago
Red Belt
Hi Tron,
sorry for the delay, just got back from growing my freckles on a Mexican beach :-)
I've never specifically used  the return value from InstallFinalize, as if this is not successful, you get an overall invalid return result from the main installer engine, and the failure usually not related to the actual InstallFinalize action, but an action / custom action that is mis-behaving prior to this, and it is usually here that I start my examinations of installation failures using the log...

Posted by: Pressanykey 5 years ago
Red Belt
to be honest, unless you have any real problems with a specific package, the only really interesting return value is that of the main installer (i,e, 0 | 3010) are ok, anything else is bad mojo. Standard actions may also return for example "3" but the installation is still successful. Custom actions that are not standard, must return "0" as a non "0" return value signifies an error.
In your case I would concentrate on the final return value provided at the end of an installation, anything other than 0 or 3010 is an error. Trying to parse / evaluate values coming from Actions carried out during installation would probably only cause many "false" positives, and / or take allot of time to interpret.


  • Whilst there would be values of 0 return values as some actions would not complete, 3010 is a soft reboot and return value 1 is successful on the actions required....I think you are referring to a return "code" of 0 in the event logs which is different to return value.
    My Question is that many often look for the message, the installation was successful etc but instead I think the engineer should be looking for a return value of 1 for actions required and install finalize. - tron2ole 5 years ago
    • Hi Tron,
      again, unless you have a problem package, I'd just go for the return codes 0 | 3010 from the main installer. Attempting to evaluate return codes from actions could be very painful, as it only takes a vendor CA to return something "unexpected" and the whole house of cards fall together ;-) - Pressanykey 5 years ago
      • Thanks for your reply...a return value of 0 is what the application event log will output and this is valuable to use...
        But my enquiry is about the verbose log which will not return code of 0 as this not exist in the log.
        Am I right that if InstallFinalise is the last action in the InstallExecutive sequence and returns 1, this would also indicate a successful install as the trigger output of this message, does not always get returned?
        "MSI (s) (C8:34) [14:00:08:491]: Product: INT SamplePackage -- Installation operation completed successfully." - tron2ole 5 years ago
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ