Collect synchronized cluster, Hyper-V, WER, storage, and performance evidence during the next occurrence before changing IsAlive intervals, because the current events prove a VM-resource health-check failure but do not identify whether VMMS/VMWP communication, storage, networking, or another host component stopped responding.
What the current evidence means
The guest heartbeat and the clustered VM resource’s IsAlive check represent different health paths. A heartbeat can therefore remain Present while the cluster’s resource check times out. Conceptually, LostTimeout indicates that the resource health operation did not complete successfully in time; it does not, by itself, identify the blocked VMMS, VMWP, WMI, storage, or cluster call.
Microsoft’s unexpected-failover procedure specifically directs administrators to locate Resource <name> IsAlive has indicated failure or IsAlive sanity check failed, inspect preceding errors, and then follow the group’s recovery or move on both source and destination nodes.^1^
No published source here maps RHSCallResult 5038 plus LostTimeout to one specific modern Windows Server defect. Do not infer an RHS crash merely because Rhs.exe appears in WER; the report can represent a failed or timed-out resource call.
Capture the next incident
Run from an elevated PowerShell session immediately after an occurrence, using a destination with adequate free space:
$Out = "C:\ClusterIncident"
New-Item -ItemType Directory -Path $Out -Force | Out-Null
Get-ClusterLog -UseLocalTime -Destination $Out
Get-ClusterSharedVolume | Format-List * |
Out-File "$Out\CSV.txt"
Get-StoragePool | Format-List * |
Out-File "$Out\StoragePools.txt"
Get-VirtualDisk | Format-List * |
Out-File "$Out\VirtualDisks.txt"
Get-PhysicalDisk | Format-Table FriendlyName,HealthStatus,OperationalStatus |
Out-File "$Out\PhysicalDisks.txt"
Microsoft recommends cluster logs from all nodes, System/Application logs, Hyper-V logs, network traces, dumps, and storage-vendor logs for HA VM incidents.^2^
Correlate by:
- VM name and GUID.
- Source node and CSV owner.
- Exact local timestamp—preferably from several minutes before
IsAlivefailure through recovery. -
IsAlivefailure,Group move/Move of group, and online result. - VMMS, Worker, FailoverClustering/Operational, Diagnostic, System, Disk, StorPort, CSVFS, SpacePort, and storage-provider events.
Inspect %ProgramData%\Microsoft\Windows\WER\ReportQueue first and preserve the entire matching report directory. Start with Report.wer, then examine any RHS dump and .evtx files actually present. ReportQueue can contain collected artifacts; after upload/archival, ReportArchive may retain only Report.wer because other data can be deleted.^3^
Test the storage hypothesis
Event 157 and Event 5120 make storage a credible candidate, but not an established cause. Correlate each event’s timestamp, node, disk/CSV identity, and—especially for 5120—the status code. Event 5120 means communication between a node and CSV was interrupted; the interruption can be brief or long enough to affect workloads.^4^
Capture these counters continuously across every node:
-
Cluster CSVFS(*)\Avg. sec/Read -
Cluster CSVFS(*)\Avg. sec/Write -
PhysicalDisk(*)\Avg. Disk sec/Read -
PhysicalDisk(*)\Avg. Disk sec/Write - Physical-disk read/write queue lengths
- Host CPU, available memory, and network throughput/errors
The CSVFS counters provide per-volume latency, throughput, and IOPS information.^5^ Microsoft identifies sustained physical-disk latency above 50 ms as a storage-bottleneck indicator.^6^
For deeper correlation, collect a short StorPort trace around a controlled reproduction or suspected window:
logman create trace storport -ow -o C:\ClusterIncident\storport.etl -p Microsoft-Windows-StorPort 0xff -ets
rem Reproduce or wait only for the planned observation window
logman stop storport -ets
Validate free-space impact first and keep the trace window bounded; do not leave this running indefinitely across all production nodes.^7^
Configuration and known-issue checks
Record the host edition, exact build, cumulative updates, VM configuration version, storage firmware/drivers, and whether this is traditional Storage Spaces or Storage Spaces Direct.
Conditional known issue: If the hosts are Windows Server 2019 using Storage Spaces Direct, check whether KB5062557 is installed and whether the documented cluster-instability issue applies. If confirmed, use the associated official remedy—remove the problematic update or deploy its official KIR MSI—during an approved maintenance window.^8^ This branch does not apply merely because the environment uses “Storage Spaces.”
Also compare networking, storage drivers/firmware, BIOS, OS builds, and VM configuration support across all nodes. Cluster and CSV traffic share dependencies with inter-node communication and CSV redirection, even when VM guest networking remains healthy.^9^
Do not increase IsAlivePollInterval yet. That may reduce sensitivity without correcting the blocked operation. If the synchronized evidence still does not expose the caller or dependency, collect Microsoft TSS Hyper-V data and open a support case with cluster logs, WER artifacts, StorPort ETL, PerfMon BLG, and storage-platform logs.^10^
References
- Unexpected cluster failover troubleshooting guidance
- Guidance for troubleshooting high-availability virtual machines ...
- Troubleshooting a Failover Cluster using Windows Error Reporting
- Event ID 5120 Cluster Shared Volume troubleshooting guidance
- Performance history for volumes
- Detecting bottlenecks in a virtualized environment
- Multipath I/O (MPIO) troubleshooting guidance
- Troubleshoot storage issues in Hyper-V and Windows Server failover clusters
- Network recommendations for Hyper-V in a failover cluster
- Collect data to analyze and troubleshoot Hyper-V scenarios