Warning FailedAttachVolume attachdetach-controller AttachVolume.Attach failed for volume "pvc-uuid" : rpc error: code = Internal desc = Watch on virtualmachine "worker-node-name" timed out
failed to attach: rpc error: code = Internal desc = Watch on virtualmachine "worker-node-name" timed out
error vsanvcmgmtd Failed to attach disk to vm: vm-<ID> with err: CNSVolumeAlreadyAttachedException (Volume is already attached to VM vm-<ID>)VMware vSphere Kubernetes Service
VMware vCenter Server
This issue occurs when a worker node is remediated or deleted by the Cluster API (CAPI) but fails to clean up its volume attachments correctly. This is often triggered by:
The volume attachment must be manually decoupled from the stale VM/Node record before the new worker node can claim it.
Step 1: Manual Detachment in vCenter
Step 2: Clear Stale CNS Records on Supervisor
kubectl get cnsnodevmattachments.cns.vmware.com -A | grep -i <stale-node-name>
kubectl delete cnsnodevmattachments.cns.vmware.com <attachment-name> -n <namespace> --force --grace-period=0Step 3: Refresh CSI Driver
Restart the CSI driver components in the Guest Cluster to trigger a re-reconciliation of the volume attachments using the command below.
kubectl rollout restart deployment vsphere-csi-controller -n vmware-system-csi
Step 4: Cleanup Stale VM
Once the volume has successfully attached to the new node and the pods are running, you can address the stale VM.