/var/log/hostd.log on the affected ESXi host, you see errors similar to:
Failed to read advanced option subtree Disk.SchedNumReqOutstanding: N3Vim5Fault11InvalidName9ExceptionE(Fault cause: vim.fault.InvalidName
Throw vim.fault.InvalidName
(vim.fault.InvalidName) {
name = "Disk.SchedNumReqOutstanding",
msg = "",
}
/var/log/vpxa.log, you see corresponding errors similar to:
[VpxLRO] -- ERROR lro-#### -- EsxHostAdvSettings -- vim.option.OptionManager.queryView: vim.fault.InvalidName
/var/log/vmware/vpxd/vpxd.log on the vCenter Server, the session responsible for the faults may show an older API version similar to:
vim.version.version11, official, 6.5
|
|
The Disk.SchedNumReqOutstanding advanced setting was deprecated in vSphere 5.5 and removed entirely in ESXi 7.0. However, stale references to this setting can persist in the environment from two potential sources:
When vLCM/VUM or an external tool queries this setting on an ESXi 7.x or 8.x host, the host returns an InvalidName fault because the setting no longer exists. These repeated faults destabilize the communication between the hostd and vpxa services, causing the host to intermittently appear disconnected in vCenter.
If the faults are caused by stale references in the vSphere Lifecycle Manager or VMware Update Manager database:
If the faults persist after the vLCM/VUM database reset, or if the faults are attributed to a non-VMware service account, a third-party tool is likely the source. Follow these steps to identify it.
Before starting, understand the three identifiers used to trace the fault to its source:
1234abcd) that tags a single API operation as it flows through the vpxd, vpxa, and hostd services. Use it to correlate the same operation across all three logs.1234abcd-1234-abcd-1234-1234abcdef12) that identifies the authenticated vCenter SDK session. Every API call in vpxd is tagged with the session ID of the caller. In the /var/log/vmware/vpxd.log, the session ID appears in two places:
VMOMI activation LRO failed lines: <<SESSION_ID, <TCP ...VpxLRO ERROR lines: SESSION_ID(USER_PRINCIPAL_ID)1234abcd-1234-abcd-1234-1234abcdef12). This is the SSO identity tied to the session. It is not needed for this investigation but appears alongside the session ID.On the vCenter Server, open /var/log/vmware/vpxd.log and search for InvalidName. Look for VMOMI activation LRO failed warning lines that reference vim.option.OptionManager.queryView. For example:
YYYY-MM-DDTHH:mm:ss.###Z warning vpxd[06885] [Originator@6876 sub=Vmomi opID=1234abcd] VMOMI activation LRO failed; <<1234abcd-1234-abcd-1234-1234abcdef12, <TCP '127.0.0.1 : 8085'>, ...>>, EsxHostAdvSettings-577538, vim.option.OptionManager.queryView, <vim.version.version11, official, 6.5>, ...
From this line, extract:
| Field | Where to find it | Example value |
|---|---|---|
| opID | In the log header: opID=1234abcd |
1234abcd |
| Session ID | Immediately after << at the start of the details block |
1234abcd-1234-abcd-1234-1234abcdef12 |
| API version | After the managed object and method, in angle brackets | vim.version.version11, official, 6.5 |
A session using an old API version such as vim.version.version11 (vSphere 6.5) indicates a tool that has not been updated for current ESXi versions. If the API version is v8_0_#_# or similar, the fault is being propagated by a vCenter internal session rather than originating from an external tool — in that case, look for other sessions in the same log that also hit this fault with an older API version.
Note: If the fault entries only show the internal vCenter session (v8.0 API), the external tool's session that triggered the query may also be present in the same log with a different session ID and an older API version. Search for all InvalidName lines and compare the session IDs and API versions across them.
Search the same /var/log/vmware/vpxd.log (and earlier rolled vpxd log files, including *.gz files) for the session ID identified in Step 1. Look for the SessionManager.login line:
YYYY-MM-DDTHH:mm:ss.###Z info vpxd[06375] [Originator@6876 sub=vpxLro opID=1234abcd] [VpxLRO] -- BEGIN lro-3010991 -- SessionManager -- vim.SessionManager.login -- 1234abcd-1234-abcd-1234-1234abcdef12
Immediately after this line, the SsoClient entry reveals the authenticated user:
YYYY-MM-DDTHH:mm:ss.###Z info vpxd[06375] [Originator@6876 sub=SsoClient opID=1234abcd]
Successfully acquired token: SamlToken [subject={Name: VENDOR_USER_ACCOUNT; Domain:VSPHERE.LOCAL}, ...]
Note the username (VENDOR_USER_ACCOUNT) and the timestamp of the login (YYYY-MM-DDTHH:mm:ss).
If the login event is not found in the current /var/log/vmware/vpxd/vpxd.log file, it may be in an older rolled log. vpxd logs can be named vpxd-###.log (or vpxd-###.log.gz for compressed older files). Search them in descending order by number. Use zgrep for *.gz files:
zgrep "SessionManager.*login.*1234abcd-1234-abcd-1234-1234abcdef12" /var/log/vmware/vpxd/vpxd-*.log.gz
Open the vCenter authentication log. In a log bundle, this is commands/journalctl_-b--0.txt. On a live system, use journalctl -b -0. Search for the username from Step 2 together with UserLoginSessionEvent:
journalctl -b -0 |grep "VENDOR_USER_ACCOUNT" | grep "UserLoginSessionEvent"
Find the entry whose timestamp matches (or is within 1 second of) the SessionManager.login timestamp from Step 2:
MMM DD HH:mm:ss <some server fqdn> vpxd[6177]: [vim.event.UserLoginSessionEvent] [info] [VSPHERE.LOCAL\VENDOR_USER_ACCOUNT] [User VSPHERE.LOCAL\VENDOR_USER_ACCOUNT@<ip address>> logged in as Java/11.0.29]
This line provides:
| Field | Where to find it | Example value |
|---|---|---|
| Source IP | After @ in the user identifier | ###.###.###.### |
| User agent | After logged in as |
Java/11.0.29 |
The UserLogoutSessionEvent entries for the same user are also useful — they show the login cadence and the number of API invocations per session, which helps characterize the tool's behavior.
Once the source IP is identified, determine what application is running on that system. Common culprits include backup software, storage array integration plugins, and monitoring tools that were originally deployed against a vSphere 6.x environment and never updated.
Update the third-party tool to a version that uses current vSphere API bindings. Contact the tool's vendor for guidance on the update process if needed. If you're already on the latest version, the vendor should be requested t update their tool to use the corrrect, non-deprecated or removed API calls
After the update, and after the tool has been running on the new version for at least 24 hours, check /var/log/hostd.log on previously affected hosts to confirm the InvalidName faults have stopped.
If the faults continue after updating, contact the tool's vendor and report the issue. The tool is querying a deprecated ESXi setting that was removed in ESXi 7.0, and the vendor will need to update their software to remove that query.