cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Tim_Mayert
Level 9

Uninstall Custom Action, type 19, causing Fatal Error

I have a few install prerequisites that are required for our main apps to work correctly. Now these prerequistes our common components and sxs merge modules as well as other apps that are required to be installed on the machine before the main apps can be installed (Our Common Platform install package).

So we have custom actions set to exit the install with a message box indicating that the Common Platform tools have to be installed first. These custom actions work fine on install

The problem is during uninstall. If say the user attempt to uninstall one of the Common Plaform apps while the main apps are still installed then we want to prevent this. So we again have some Type 19 custom actions that will be triggered if any of the main apps are still installed and they try to uninstall the Common Platform applications. The user will get the message stating they have to uninstall the main apps first and then the uninstall will exit.

On Win 7 this works fine, but it seems on XP machines you will correctly get the message to uninstall the main apps first, but when it triggers the exit we'll get a "Fatal error during installation" message from "Add or Remove Programs"

The install log will record the have the following after the custom action is triggered:
Action ended 17:11:20: PreventUninstall. Return value 3.
Action ended 17:11:20: INSTALL. Return value 3.

And the end of the install log will have the following:

MSI (s) (F0:B8) [17:11:20:890]: Note: 1: 1725
MSI (s) (F0:B8) [17:11:20:890]: Product: SMART Common Platform -- Removal failed.

MSI (s) (F0:B8) [17:11:20:906]: Attempting to delete file C:\WINDOWS\Installer\185119.mst
MSI (s) (F0:B8) [17:11:20:906]: Cleaning up uninstalled install packages, if any exist
MSI (s) (F0:B8) [17:11:20:906]: MainEngineThread is returning 1603
MSI (s) (F0:54) [17:11:21:031]: Destroying RemoteAPI object.
MSI (s) (F0:44) [17:11:21:031]: Custom Action Manager thread ending.
=== Logging stopped: 7/21/2011 17:11:20 ===
MSI (c) (74:FC) [17:11:21:031]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: -1
MSI (c) (74:FC) [17:11:21:031]: MainEngineThread is returning 1603
=== Verbose logging stopped: 7/21/2011 17:11:21 ===


So does uninstall not like to trigger exit custom actions on XP and is there anyway to get around this error poping up?

Thanks for any help.
Labels (1)
0 Kudos
(6) Replies
Tim_Mayert
Level 9

Okay in the log I get the following:

MSI (s) (B0:E0) [07:58:01:421]: Doing action: PreventUninstall
Action ended 7:58:01: FindRelatedProducts. Return value 0.
Action start 7:58:01: PreventUninstall.
MSI (s) (B0:E0) [07:58:02:500]: Product: SMART Common Platform -- You cannot remove SMART Common Platform if any of its dependent software products are installed on your system. Before you remove SMART Common Platform, ensure you remove SMART Product Drivers, SMART Notebook software, SMART Response software and SMART Sync Teacher software.

MSI (c) (DC:6C) [07:58:01:421]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg

You cannot remove SMART Common Platform if any of its dependent software products are installed on your system. Before you remove SMART Common Platform, ensure you remove SMART Product Drivers, SMART Notebook software, SMART Response software and SMART Sync Teacher software.
Action ended 7:58:02: PreventUninstall. Return value 3.
Action ended 7:58:02: INSTALL. Return value 3.

So can we NOT trigger EXIT (Type 19) custom actions during an uninstall?

I have placed this custom action in various locations and still get the INSTALL. Return value 3. - which will cause the Fatal Error... This only occurs on XP SP3 machines. If is fine on Vista and greater OS's.

Any Help Here would be appreciated!!!
0 Kudos
Stefan_Krueger
Level 9

I'd think this is the expected behaviour, and I don't see why it's behaving differently on Vista.

INSTALL is the action that also will handle uninstall etc., as opposed to ADVERTISE or ADMIN.

Custom Action Type 19 displays a specified error message, returns failure, and then terminates the installation. So return value 3 looks appropriate.
Stefan Krueger
InstallSite.org
0 Kudos
Tim_Mayert
Level 9

Well it is only on XP that after I get the message stating that I can not uninstall the product without uninstalling the dependency products that the MSI will display the Fatal Error.

The other OS's will have the same entries in the log, but they do not dispaly a Fatal Error message box on Exit.

So does anyone know why this uninstall type 19 custom action on XP would cause this Fatal Error message to appear. It does no harm and if you uninstall the apps in the correct order all works fine, but we can see users uninstalling in the incorrect order...

Thanks,
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

Where is this fatal error message being displayed from, Add/Remove Programs or elsewhere? If it's from Add/Remove Programs, there's nothing that can be done to prevent it from appearing when an MSI (or any other installer) exits with a non-zero exit code (msiexec.exe, MsiInstallProduct, and MsiConfigureProduct, etc. return 1603, ERROR_INSTALL_FAILURE, when type 19 actions run). While Add/Remove Programs may have been changed somewhat on Vista or newer, we have encountered Fatal Error messages on these platforms when maintenance/uninstall operations do not succeed.
0 Kudos
Tim_Mayert
Level 9

Thanks for the information Josh.

So let me ask you this, since we want the uninstall to not continue in this case, but we want to avoid this Fatal Error message from popping is there anyway that we can exit the uninstall without having the ERROR_INSTALL_FAILURE. Is there anyway that we can have the uninstall exist with ERROR_SUCCESS, or have the uninstall actually not do anything so to avoid this error?

Thanks,
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

I'd suggest reading up on MSDN, specifically Custom Action Return Values.
0 Kudos