When attempting to expand a vSAN Stretched Cluster in VMware Cloud Foundation (VCF) by adding new ESXi hosts, the workflow fails at the Validate Expand Stretch Cluster ESXi Host(s) Network task.
Failed to validate host's network.Please make sure host management VLAN id and networkPoolId matches the specified fault domain./var/log/vmware/vcf/domainmanager/domainmanager.log:ERROR [vcf_dm,uuid,tid] [c.v.e.s.s.t.ValidateExpandStretchHostNetworkAction,dm-exec-X] Host host_name VlanId XXXX is not same as availability zones VlanId YYYYERROR [vcf_dm,uuid,tid] [c.v.e.s.o.model.error.ErrorFactory,dm-exec-X] [3KERS8] HOST_NETWORK_VALIDATION_FAILED Failed to validate hosts network.com.vmware.evo.sddc.orchestrator.exceptions.OrchTaskException: Failed to validate hosts network.
VCF 9.x
This stems from a known issue in VMware Cloud Foundation 9.0.0 inventory synchronization process. During sync operations, the faultLevel metadata tag is incorrectly stripped from the the port_groups JSON array in vds table. If a synchronization occurred while the environment was on version 9.0.0, the field remains blank even after upgrading to version 9.0.1 or 9.0.2.
In a stretched cluster configuration, SDDC Manager uses these tags (PRIMARY for AZ1 and SECONDARY for AZ2) to distinguish between site-specific network settings. If these tags are stripped (which can happen following certain out-of-band changes or sync operations in VCF 9.x), the orchestrator cannot correctly identify the Availability Zone VLAN, leading to a validation mismatch.
The issue where inventory synchronization stripsfaultLevel metadata field is resolved in VCF 9.0.1.0.
To resolve this issue, the missing faultLevel metadata must be manually restored to the VDS entry in the SDDC Manager database.
Note: It is recommended to take an offline snapshot of the SDDC Manager VM before performing manual database modifications.
vcf and switch to root.b7df4fea-5cc2-4ff5-a344-a4b241jka7c00).Check the current port_groups configuration:
Look for the absence of "faultLevel": "PRIMARY" or "faultLevel": "SECONDARY" within the port group objects.
Run an UPDATE statement to re-inject the correct JSON structure including the faultLevel tags for your specific environment. Note: Ensure you include all existing port groups in the string to avoid data loss.
Example Update (Adjust names/IDs/VLANs to match your specific output from Step 2):
Exit the database and restart the core SDDC Manager services: