Showing results for 
Show  only  | Search instead for 
Did you mean: 
Level 4

Feature not detected: InstallValidate and MsiGetFeatureState


I need to do a minor upgrade for my product. However I noticed that the INSTALLVALIDATE action always fails to detect the features in my product because of which the REMOVE=ALL is set and the product gets uninstalled. The log file indicate as follows:

Action start 1:07:01: InstallValidate.
MSI (s) (1C:B8) [01:07:01:620]: Feature: Server; Installed: Absent; Request: Null; Action: Null
MSI (s) (1C:B8) [01:07:01:620]: Feature: Database; Installed: Absent; Request: Null; Action: Null
MSI (s) (1C:B8) [01:07:01:620]: Feature: AppServerADAMIntegration; Installed: Absent; Request: Null; Action: Null

Also, I noticed that MsiGetFeatureState API also fails for the same set of features.

What could the issue be? Where does the InstallValidate or MsiGetFeatureState check to see if the feature is installed?

Labels (1)
0 Kudos
(3) Replies
Level 7

Well I didn't see REMOVE property being set to ALL in the log snippet you provided. It seems that the real problem is that MSI thinks that none of the three features are actually currently installed. So when the minor upgrade takes place and REINSTALL=ALL is passed in, no features are reinstalled.

I suggest you try installing your base version on a clean machine and verify that the MSI log reports that your features were installed. Only then try to run the minor upgrade.

A tool that may come in handy for diagnostics is InstallShield MSI Sleuth. It can tell you the installed states of features for example.

0 Kudos
Level 4

Thanks Ajay. I did not include the whole of the log file, just a snippet to indicate that features are not detected.

I will try out the Sleuth tool you suggested.

But what beats me is that there are number of features in our product, broadly classified as Server and Client. All the server features are properly detected, only the client ones are not. Is there a specific location that the msi searches for, like say some registry entry, to figure out that a certain feature is installed?

0 Kudos
Level 2


I was stopped by the same problem when my products performed Repair action.
There was only one file in a merge module, which was depended by one feature, needed to reinstall, but all features states were "Installed: Absent; Request: Null; Action: Null" and the property "REMOVE" was set to "ALL".

I have been stuck here a few days and found nothing useful. Do you find the answers of your questions or anything new? Thank you in advance.

Best Regards,
0 Kudos