Hyper-V Checkpoint Stuck: Diagnose and Remove Orphaned AVHDX Files
When a Hyper-V VM is left with lingering AVHDX files after a backup, the VM appears healthy yet the disk chain is broken. This guide walks through the symptoms, causes, ordered checks, fixes, and escalation steps to clean up orphaned checkpoints safely.
10 Dec 2025, 09:59 UTC

Recognizable Condition
When you run Get-VMSnapshot -VMName <VM> and get no results, yet the VM's hard-disk folder contains one or more .avhdx files, the VM is in a checkpoint-stuck state. The VM runs normally, but the disk chain still points to an AVHDX parent that is no longer referenced by a valid checkpoint object. Common symptoms include:
- Long-running backups that never finish, leaving the VM in a
Backing up...status. - Incremental backups that fail after the first run.
- Slow I/O performance that worsens over time.
- Event-log entries in
Hyper-V-VMMSabout failed checkpoint merges.
Underlying Cause
Since Windows Server 2016, Hyper-V uses production checkpoints by default. A production checkpoint creates a .avhdx differencing disk and freezes the parent .vhdx. If the backup process aborts (for example, a VSS writer failure, a full host disk, or an integration services mismatch), the checkpoint object can be removed while the .avhdx remains. The VM's disk chain still references the orphaned AVHDX, but PowerShell no longer lists a snapshot, making the problem invisible to most users.
Because checkpoints are not backups, they should be merged or deleted as soon as they are no longer needed. Leaving orphaned AVHDX files can:
- Consume disk space indefinitely.
- Introduce I/O latency.
- Cause merge failures that block further backups.
Diagnostic Table
| Condition | Likely Cause |
|---|---|
VM shows Backing up... but no snapshots. | Orphaned checkpoint from a failed backup. |
AVHDX file present, Get-VMSnapshot returns nothing. | Merge pending or broken chain. |
| Event Viewer: VSS errors in guest log. | Integration services or VSS writer failure. |
| Checkpoint creation fails. | Insufficient host disk space or permissions. |
Ordered Checks
- List snapshots
Run on the Hyper-V host in an elevated PowerShell session:
Check whether any snapshot objects exist.Get-VMSnapshot -VMName <VM> - Inspect the disk chain
Locate the VM's disk path withGet-VMHardDiskDrive -VMName <VM>, then run:
A non-emptyGet-VHD -Path <DiskPath> | Format-ListParentPathpointing to an AVHDX indicates a differencing chain is still active. - Check event logs
Open Event Viewer and navigate to:- Applications and Services Logs > Microsoft > Windows > Hyper-V-VMMS
- Guest OS: Application log for VSS writer errors.
- Verify integration services
On the host, run:
Ensure the VSS integration service is enabled and healthy, and that integration services in the guest are current for the host's Hyper-V version.Get-VMIntegrationService -VMName <VM> | Format-List Name, Enabled, PrimaryStatusDescription - Check host disk space
Confirm the volume holding the VM's disks has enough free space for a merge. A nearly full volume can block checkpoint merges and new checkpoint creation.
Fixes Tied to Findings
- No snapshots but AVHDX present
Create a new standard checkpoint to trigger a merge, then delete it:
If merging fails, export the VM, remove the orphaned files, and re-import.Checkpoint-VM -VMName <VM> -SnapshotName "TempMerge" Remove-VMSnapshot -VMName <VM> -Name "TempMerge" - Broken chain (ParentPath points to a missing file)
Use Hyper-V Manager's Inspect Disk action: select the disk, chooseReconnect, and point it at the correct parent. After reconnection, delete the checkpoint so the merge can run. Merges typically require the VM to be powered off to complete. - VSS writer failures
Update integration services in the guest, then restart the Hyper-V Volume Shadow Copy Requestor service on the host. Verify writer health inside the guest with:
All writers should report a stable state with no errors.vssadmin list writers - Insufficient disk space
Free space on the host volume or move the VM storage to a larger volume, then retry the merge.
Escalation Criteria
- Merge fails repeatedly with disk-in-use or file-not-found errors.
- The AVHDX chain is corrupted (for example, a missing parent) and cannot be reconnected.
- The host volume is critically low on space and cannot be expanded to complete a merge.
- The VM hosts a production service and the available downtime window has been exhausted.
When any of these occur, plan a restore from a clean backup or engage Microsoft support for advanced recovery.
Limitations and Practical Checks
- Do not delete AVHDX files manually from the file system while the VM references them; this breaks the differencing chain and can render the VM unbootable.
- Checkpoint merges require free disk space and usually require the VM to be powered off; plan a maintenance window.
- The behavior described applies to Windows Server 2016-2022 and Windows 10/11 client Hyper-V. Cmdlet behavior and checkpoint defaults are version-sensitive, so confirm against your host version before scripting fixes.
- After a fix, verify by booting the VM, confirming
Get-VMSnapshotreturns nothing, and confirming no AVHDX files remain in the disk folder. - Run
Get-VHDon the parent disk to confirmParentPathis empty after the merge.
Practical Verification Example
Assume VM SQLServer01 has an orphaned AVHDX. A typical cleanup sequence on the host (elevated PowerShell) is:
Get-VMSnapshot -VMName SQLServer01returns nothing, butGet-VMHardDiskDriveshows the VM attached to an.avhdxfile.Get-VHD -Path <DiskPath> | Format-Listshows aParentPathpointing to the base VHDX, confirming the differencing chain.- Run
Checkpoint-VM -VMName SQLServer01 -SnapshotName TempMerge, thenRemove-VMSnapshot -VMName SQLServer01 -Name TempMergeto force the merge. - Verify
Get-VMSnapshotstill returns nothing and the AVHDX file is gone from the disk folder.
After these steps, the VM's disk chain is clean and normal backup operations can resume. Test this procedure on a non-production VM first to confirm the behavior on your host version.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.