Upgrade BigFix Inventory fixlet not relevant

We have two separate BigFix environments at the same version level (9.5.11), one for servers and the other for our desktops. Whenever I upgrade both environments the fixlet “Upgrade to the latest version of IBM BigFix Inventory” is never relevant in our server environment, but is relevant in our desktop environment. I always end up having to manually run the installer instead, which works.

Using the Fixlet Debugger I can’t see what’s causing it to fail the relevance check. The debugger returns the same results from both BFI servers. However, on both servers there’s one check that returns “Singular expression refers to nonexistent object”. My guess is that if it resolved correctly, this would be the check that’s different between them:

Q: if exists setting whose (name of it starts with "SUA_Server_Path" AND exists folder (value of it)) of client then ((free space of drive of folder (value of it) > ((floating point "1.5" + (if name of drive of folder (value of it) = name of drive of (if (name of operating system as lowercase starts with "win") then folder (((value of variable "TMP" of it) | (value of variable "TEMP" of it) | (value of variable "HOMEDRIVE" of it & value of variable "HOMEPATH" of it)) of environment) else (folder (value of variable "IATMPDIR" of environment | "/tmp") | root folder)) then floating point "0.5" else floating point "0.0") + (if name of drive of folder (value of it) = name of drive of folder (if (name of operating system as lowercase starts with "win") then pathname of client folder of current site & "/__Download/" else (parenthesized part 2 of match (regex "^([^:]*:){5}([^:]*):.*$" ) of line starting with (name of effective user of process "BESClient" whose (not exists command line arguments of it) & ":") of file("/etc/passwd"))) then floating point "1.0" else floating point "0.0")) * 1024 * 1024 * 1024) + (sum of sizes of descendants of folder (value of it & "/wlp/usr/servers/server1/data") | 0) + (sum of sizes of descendants of folder (value of it & "/wlp/usr/servers/server1/logs") | 0) - (size of file whose (size of it = (if (name of operating system as lowercase starts with "win") then 613901210 else 564200238)) of descendant folders of folder ((pathname of data folder of client) & "/__Global/__Download/" & name of current site) | 0)) of (setting whose (name of it starts with "SUA_Server_Path") of client)) else false

E: Singular expression refers to nonexistent object.

I know that it’s checking for free space on the drive that BFI is installed on, but not how much space it’s checking for. On the BFI server that’s not relevant there’s 65GB out of 160GB free. Is the above relevance looking for a specific folder size? Because, the /wlp/usr/servers/server1/logs folder on the failing server is 89GB.

Is the value of the SUA_Server_Path* computer setting consistent across both installations?

Do the environment variables, referenced in the first if clause, exist and do they point to valid folders?

Both environments have the same volume layout, drive letter, and variables. The relevance evaluates true on both servers.

I’m confused now. Which relevance evaluates to true on both servers? In your original post, the relevance evaluated to a nonexistent object error.