When enabling vSphere with Tanzu (WCP) or upgrading the Supervisor, the deployment of the Foundation Load Balancer (FLB) fails and becomes stuck in a "Configuring" or NON_COMPLIANT loop.
In /var/log/vmware/wcp/wcpsvc.log, the cluster enablement fails:
error wcp [kubelifecycle/spherelet_lifecycle.go:839] [opID=69f5786e] Cluster version not supported for cluster domain-c5674870
In /var/log/vmware/vpxd/vpxd.log, the vCenter database shows a stuck solution application:
Skip apply solution request since another one is in progress; <ID>:com.vmware.esx.settings.clusters.vms.solutions
In /var/log/vmware/vpxd/vpxd-*.log, vSphere DRS drops the primary vSAN datastore due to a size boundary limitation
vpxd-####.log.gz:####-##-##T##:##:##.###Z warning vpxd[#####] [Originator@#### sub=sdrsLogger opID=########] Datastore [vim.Datastore:datastore-#######,<CATEGORY_REDACTED>] invalid size: capcaityBytes=########, freeBytes=########
vpxd-####.log.gz:####-##-##T##:##:##.###Z error vpxd[#####] [Originator@#### sub=drmLogger opID=########] Received Fault while building context for place disk: (vim.fault.NoCompatibleDatastore) {
vpxd-####.log.gz:####-##-##T##:##:##.###Z error vpxd[#####] [Originator@#### sub=drmLogger opID=########] Can not place disk.
vpxd-####.log.gz:####-##-##T##:##:##.###Z info vpxd[#####] [Originator@#### sub=vpxLro opID=########] [VpxLRO] -- FINISH lro-########
vpxd-####.log.gz:####-##-##T##:##:##.###Z warning vpxd[#####] [Originator@#### sub=sdrsLogger opID=########] Datastore [vim.Datastore:datastore-#######,<CATEGORY_REDACTED>] invalid size: capcaityBytes=########, freeBytes=########
vpxd-####.log.gz:####-##-##T##:##:##.###Z error vpxd[#####] [Originator@#### sub=drmLogger opID=########] Received Fault while building context for place disk: (vim.fault.NoCompatibleDatastore) {
vpxd-####.log.gz:####-##-##T##:##:##.###Z error vpxd[#####] [Originator@#### sub=drmLogger opID=########] Can not place disk.
vpxd-####.log.gz:####-##-##T##:##:##.###Z info vpxd[#####] [Originator@#### sub=vpxLro opID=########] [VpxLRO] -- BEGIN lro-######## -- SessionManager -- vim.SessionManager.sessionIsActive -- ########-####-####-####-############(########-####-####-####-############)
vpxd-####.log.gz:####-##-##T##:##:##.###Z info vpxd[#####] [Originator@#### sub=vpxLro opID=########] [VpxLRO] -- BEGIN lro-######## -- session[########-####-####-####-############]########-####-####-####-############ -- vim.view.View.destroy -- ########-####-####-####-############(########-####-####-####-############)
vpxd-####.log.gz:####-##-##T##:##:##.###Z info vpxd[#####] [Originator@#### sub=vpxLro opID=########] [VpxLRO] -- FINISH lro-########
In /var/log/vmware/eam/eam.log, ESX Agent Manager throws an exception as it fails over to an invalid local datastore:
Download:Route(routedUrl:file:/storage/lifecycle/vmware-halb/photon-ova.ovf, url:file:/storage/lifecycle/vmware-halb/photon-ova.ovf, pemCertificate:null, thumbprint:null, headers:{}:ac3494c8cffb699b] Downloaded OVF descriptor from URL: file:/storage/lifecycle/vmware-halb/photon-ova.ovf
####-##-##T##:##:##.###Z | INFO | cluster-agent-1 | DeployVmJob.java | 574 | Deploying agent on cluster <CATEGORY_REDACTED> (ClusterComputeResource:domain-c5674870) with name <HOSTNAME_REDACTED> (67)
####-##-##T##:##:##.###Z | INFO | cluster-agent-4 | DeployVmJob.java | 574 | Deploying agent on cluster <CATEGORY_REDACTED> (ClusterComputeResource:domain-c5674870) with name <HOSTNAME_REDACTED> (68)
...
####-##-##T##:##:##.###Z | WARN | vim-async-1 | PlaceVmsXCluster.java | 103 | [RecommendDatastore] Failed to place VM: <HOSTNAME_REDACTED> (67) due to: [(vim.fault.GenericDrsFault) {
faultCause = null,
faultMessage = (vmodl.LocalizableMessage) [
message = Failed to find any suitable datastore in the destination cluster.
hostFaults = null
####-##-##T##:##:##.###Z | WARN | cluster-agent-1 | Retry.java | 111 | Failed to Deploying VM for LCCMAgent(cluster-bound, ID:) at attempt 1 out of 5 Reason: com.vmware.eam.EamRemoteSystemException: Failed to get placement recommendation virtual machine in the cluster
agencyName = 'foundation-loadbalancer-6',
agencyName = 'foundation-loadbalancer-6',
####-##-##T##:##:##.###Z | ERROR | cluster-agent-1 | AuditedJob.java | 106 | JOB FAILED: [#########] DeployVmJob(LCCMAgent(cluster-bound, ID: ca744bd1-b271-4ca7-a4e6-762d2dfc5375))
entityName = <HOSTNAME_REDACTED> (68),
####-##-##T##:##:##.###Z | WARN | vim-async-1 | PlaceVmsXCluster.java | 103 | [RecommendDatastore:] Failed to place VM: <HOSTNAME_REDACTED> (68) due to: [(vim.fault.GenericDrsFault) {
faultCause = null,
faultMessage = (vmodl.LocalizableMessage) [
message = Failed to find any suitable datastore in the destination cluster.
hostFaults = null
####-##-##T##:##:##.###Z | WARN | cluster-agent-4 | Retry.java | 111 | Failed to Deploying VM for LCCMAgent(cluster-bound, ID:) at attempt 1 out of 5 Reason: com.vmware.eam.EamRemoteSystemException: Failed to get placement recommendation virtual machine in the cluster
agencyName = 'foundation-loadbalancer-#',
agencyName = 'foundation-loadbalancer-#',
####-##-##T##:##:##.###Z | ERROR | cluster-agent-4 | AuditedJob.java | 106 | JOB FAILED: [#] DeployVmJob(LCCMAgent(cluster-bound, ID: ))
com.vmware.eam.EamRemoteSystemException: Failed to get placement recommendation virtual machine in the cluster
####-##-##T##:##:##.###Z | ERROR | cluster-agent-1 | AuditedJob.java | 106 | JOB FAILED: [#] LCCMInstallAgentJob(LCCMAgent(cluster-bound, ID:))
com.vmware.eam.EamRemoteSystemException: Failed to get placement recommendation virtual machine in the clusterVCF 9.0
VMware vSphere Kuberentes Service (VKS)
This failure is caused by a compounding sequence of placement constraints:
Storage Policy Misconfiguration: A local VMFS datastore was incorrectly tagged or matched the rules for the Storage Policy assigned to the Supervisor deployment.
EAM to DRS Conflict: EAM attempts to use the next available datastore matching the policy (the local VMFS datastore). DRS immediately rejects placing a cluster-level infrastructure VM on an unshared local datastore, resulting in a vim.fault.GenericDrsFault.
Alternatively, the issue can occurdue to DRS PlaceVm API Limitation: The DRS placement engine algorithm has a hard limitation where it ignores datastores larger than 2 Petabytes (PB) (See KB 312187). The Trading_Dev_vSAN datastore exceeds 2 PB (approximately 2.8 PB as seen in capcaityBytes=2832551399915520). DRS drops this valid shared datastore from the placement candidate list.
Ultimately, the placement failure leaves an orphaned FLB deployment task (com.vmware.esx.settings.clusters.vms.solutions) locked in the vCenter Database, blocking the overall Supervisor enablement workflow.
Correct the Storage Policy Tags for VMFS
Navigate to Policies and Profiles > Storage Policies.
Edit the Storage Policy associated with the Tanzu deployment.
Review the Storage Compatibility tab.
Ensure that no local VMFS datastores are listed as compatible. If they are, remove the assigned tags from those local datastores so they are not aevaluated by EAM.
If you are using datastores bigger than 2PB: You must bypass the size check for the target datastore.
Identify the Managed Object ID (MoRef) of the vSAN datastore from vpxd.log (e.g., datastore-####).
Open the vSphere Client and select the vCenter Server.
Navigate to Configure > Advanced Settings and click Edit Settings.
Add the MoRef ID to the advanced setting VmPlacementDatastoreOverride. (Note: If there are multiple datastores, separate them with commas).
Click Add and save the configuration.