Troubleshooting vCLS: Common vSphere Cluster Services Failures and When Retreat Mode Is the Right Fix

Common vCLS failures (MWAIT, no compatible host, embedded vCLS not deploying, missing agents) with fixes, and when Retreat Mode actually helps.

Short answer: Most vCLS problems show up as a Degraded or Unhealthy cluster service status, DRS that stops working, or VMs that refuse to power on. Fix the root cause first: BIOS MWAIT settings, invalid ESXi hostnames for embedded vCLS, or missing agent VMs. Retreat Mode is the right tool when you must remove or reset the vCLS VMs temporarily. It does not repair hardware or configuration problems, and before vSphere 9.0 it disables DRS load balancing.

How vCLS works today

Since vSphere 7.0 Update 1, DRS depends on small agent VMs called vSphere Cluster Services (vCLS). There are two implementations. Knowing which one you run matters for troubleshooting (background in my introduction to vCLS):

External vCLSEmbedded vCLS
IntroducedvSphere 7.0 U1vSphere 8.0 U3
Managed byESX Agent Manager (EAM)vpxd and ESXi (vSphere Pod technology)
Desired VM count32
Host maintenanceVMs are migratedVMs are destroyed and redeployed

Both need at least one running vCLS VM for DRS to work, per the Embedded vCLS documentation.

Common vCLS failures and their fixes

vCLS VMs fail to power on: “No host is compatible with the virtual machine”

The task details show Feature 'cpuid.mwait' was 0, but must be 1, or the error reads “Insufficient resources” with an MWAIT message. vCLS VMs use a per-VM EVC mode that requires the MWAIT CPU flag. The fix is in the server BIOS: update the firmware, enable Monitor/MWAIT and, where the vendor offers it, set C-States to autonomous (KB 390674, KB 326217). Retreat Mode only hides this problem; HA and DRS cannot be enabled until the vCLS VMs power on.

Embedded vCLS does not deploy after upgrading to 8.0 Update 3

No deployment task appears in vCenter, and the infravisor logs complain that the name is not a valid lowercase RFC 1123 subdomain. The ESXi hostname ends with a dot or hyphen or contains trailing spaces. KB 378133 fixes it with esxcli system hostname set --host <name> --domain <domain> on each affected host in maintenance mode. Here Retreat Mode is part of the procedure: enable it, correct the hostnames, then return the cluster to System Managed mode.

Workload VMs will not power on: “All required agent virtual machines are not currently deployed”

vCenter blocks power-on because the cluster lacks the required number of running vCLS agents. KB 393821 suggests checking the EAM agency status and the vCLS VM count first, powering on stopped agents, and, if VMs are missing, cycling Retreat Mode on and off so vCenter redeploys them.

Health History shows Degraded, but the status is Healthy

Past events, such as someone powering off vCLS VMs, a previous Retreat Mode period or automatic recreation, stay in the history. If the current status is Healthy, no action is needed (KB 319465).

Alarm: “vSphere Cluster Services are disabled by Retreat Mode”

Someone left the cluster in Retreat Mode. Switch the vCLS mode back to System Managed under Configure > vSphere Cluster Services (KB 404022).

When Retreat Mode is the right tool

SituationRetreat Mode?
vCLS VMs block an operation, such as an EVC change, and cannot simply be powered offYes, temporarily
Agent VMs are missing or stuck and must be redeployedYes, on then off
Host hostname fix for embedded vCLS (KB 378133)Yes, as part of the procedure
MWAIT / BIOS or other CPU compatibility errorsNo, fix the hardware configuration
Degraded entries only in Health HistoryNo, nothing to fix
Permanently avoiding vCLS VMs on vSphere 7.0 or 8.0No, DRS stops balancing

The impact depends on the version. Per KB 316514, before vSphere 9.0 a cluster in Retreat Mode has no DRS load balancing, and HA still restarts VMs, possibly on less optimal hosts. Starting with vSphere 9.0, vCLS can be disabled without affecting DRS or HA. On vSAN clusters, the Cluster Service health shows Degraded while Retreat Mode is active.

For the actual steps, the UI option in 7.0 U3o and 8.0 U2 or later, the config.vcls.clusters.domain-c<number>.enabled advanced setting, and how to exit, follow my guide How to disable vCLS on a vSphere cluster using Retreat Mode. One warning worth repeating: use only the domain-c<number> ID, because a wrong value can prevent vpxd from starting.

Before you exit Retreat Mode

  1. Confirm the root cause is fixed; otherwise the new vCLS VMs fail the same way.
  2. Make sure the hosts have a datastore and resources available for the agent VMs.
  3. Return to System Managed mode, then verify that the expected number of vCLS VMs (3 external, 2 embedded) are running and that DRS recommendations resume.

Further reading

Author: Daniel Micanek

Senior Service Architect, SAP/TDL Platform Services Team at Vivicta | vExpert ⭐⭐⭐⭐⭐⭐⭐ | Broadcom Knight: vSphere Kubernetes Service, VCF Networking (NSX), VCF Automation | Broadcom Software Knight: vSphere | Cisco Champion. Notes from running about 1,000 ESXi hosts on Cisco UCS, VCF 9 and SAP HANA on vSphere.