Tasks initiated from the vCenter Server UI for a specific ESXi host remain stuck at 0% and do not progress. This issue indicates a communication problem between the vCenter Server and the affected ESXi host, preventing the vCenter Server from receiving updates or successfully issuing commands to the host.
esxcli system syslog tail -f /var/run/log/vmkernel.log (on the ESXi host):
Observe entries indicating a recent change in the management IP address:
2025-10-01T07:33:49.229Z In(182) vmkernel: cpu19:2101084)Config: 833: "HostIPAddr" = "#.#.#.x", Old value: "#.#.#.y" (Status: 0x0)
2025-10-01T07:33:49.232Z In(182) vmkernel: cpu19:2101084)Config: 833: "ManagementAddr" = "#.#.#.x", Old value: "#.#.#.y" (Status: 0x0)
(Note: #.#.#.# represents the actual IP addresses)
/var/log/vmware/vpxd/vpxd.log (on the vCenter Server Appliance):
Observe entries indicating missed heartbeats from the ESXi host:
2025-10-01T15:36:11.275+08:00 info vpxd[06000] [Originator@6876 sub=HostCnx opID=CheckforMissingHeartbeats-5db39dc4] [VpxdHostCnx] No heartbeats received from host; cnx: 5######5-3##c-8##3-f##0-a###########1, h: host-4####1, time since last heartbeat: 66835ms
(Note: Hexadecimal strings represent internal IDs and will vary)
The primary cause of this issue is a communication breakdown between the vCenter Server and the ESXi host, specifically regarding the exchange of heartbeats over UDP port 902. This can be triggered by a recent change in the ESXi host's management network IP address which was not fully reconciled or by network devices (e.g., firewalls) blocking this essential heartbeat communication.
To troubleshoot and resolve tasks stuck at 0% due to missed heartbeats, follow these steps:
Verify Heartbeat Packet Transmission from ESXi Host:
Use the pktcap-uw command on the affected ESXi host to check if it's actively sending heartbeat packets to the vCenter Server. Replace vmnicx with the actual uplink associated with the host's management network.
esxi# pktcap-uw --uplink vmnicx --capture UplinkSndKernel --udpport 902 -o - | tcpdump-uw -enr -
This command captures outgoing UDP 902 packets from the ESXi host. If no packets are displayed, the ESXi host is not sending heartbeats, or they are not exiting the specified vmnic. If packets are displayed, it confirms the ESXi host is attempting to send heartbeats.
Verify Heartbeat Packet Reception on vCenter Server:
Similarly, perform a packet capture on the vCenter Server to see if it is receiving the heartbeat packets from the ESXi host.
For vCenter Server Appliance (VCSA):
vcsa# tcpdump -i <interface_name> host <ESXi_IP_Address> and udp port 902
(Replace <interface_name> with the appropriate network interface, e.g., eth0, and <ESXi_IP_Address> with the IP of the problematic ESXi host).
For Windows-based vCenter Server: Use a tool like Wireshark or netsh trace to capture traffic on UDP port 902 coming from the ESXi host.
Check Network Path and Firewall Configuration:
Reconnect the ESXi Host to vCenter (if necessary):
If the IP address was changed and communication issues persist after verifying network connectivity, you may need to disconnect and then reconnect the ESXi host to vCenter.
Restart Management Agents (as a last resort on the ESXi host):
If basic network connectivity appears fine but heartbeats are still an issue, restarting the management agents on the ESXi host can sometimes resolve transient communication glitches.
bash /etc/init.d/hostd restart /etc/init.d/vpxa restartBy systematically following these steps, you should be able to diagnose and resolve the communication issue causing tasks to be stuck at 0% for the specific ESXi host.