Hyper-V Checkpoint Stuck? Here's the Real Fix
Your Hyper-V checkpoint is stuck because storage is slow or the VM has high I/O. Here's how to fix it fast without killing the VM.
Quick Answer for Advanced Users
Open Hyper-V Manager, right-click the VM, go to Settings > Checkpoints, uncheck Enable checkpoints, apply, then re-enable it. This resets the checkpoint engine without losing the VM.
Why Your Checkpoint Is Taking Forever
I know this error is infuriating. You hit Create Checkpoint, the spinning wheel shows up, and 10 minutes later you're still waiting. The VM isn't frozen, but the checkpoint won't complete.
This tripped me up the first time too. Most of the time, it's one of three things:
- Slow storage – spinning hard drives or a busy SAN can't keep up with the write speed.
- High disk I/O inside the VM – the VM is doing heavy reads/writes (like a database backup or file copy).
- Low disk space – the .avhdx file needs room to grow, and the host drive is crammed.
On Windows Server 2019 and 2022, Hyper-V uses production checkpoints (VSS-based) by default, which need more resources than standard checkpoints. If the VSS writer inside the VM is slow, the checkpoint waits.
Step-by-Step Fix (In Order)
Try these steps one at a time. Stop when the checkpoint completes.
- Check free space on the host drive where the VM's VHDX files live. You need at least 10-20% free. If it's under 5%, move files or delete old checkpoints.
- Free up disk space inside the VM. Delete temp files, empty recycle bin, run Disk Cleanup. A full VM disk can stall the VSS writer.
- Pause heavy disk activity inside the VM. If you're running a backup, SQL query, or file copy, let it finish. Check Task Manager > Performance > Disk tab. If disk usage is above 80%, wait it out.
- Run a VSS consistency check inside the VM. Open Command Prompt as admin and type:
vssadmin list writers
Look for any writer with status Failed or Retryable error. If you see one, restart the Volume Shadow Copy service (VSS) inside the VM:net stop VSS
net start VSS - Reset the checkpoint engine (the one I mentioned in the quick answer). Go to VM settings, disable checkpoints, apply, then re-enable them. This clears any stuck checkpoint state on the host side. No reboot needed.
Alternative Fixes (If the Main One Didn't Work)
Sometimes the standard reset doesn't cut it. Try these:
- Switch to standard checkpoints temporarily. In VM settings, change from Production to Standard. Standard checkpoints are faster because they don't use VSS. Take your snapshot, then switch back to Production later. Works great on Windows Server 2016+.
- Use PowerShell to force-stop the checkpoint. Open PowerShell as admin on the host and run:
Get-VMCheckpoint -VMName "YourVMName" | Remove-VMCheckpoint
This kills the stuck checkpoint. Then create a fresh one. Be careful—this deletes the checkpoint, so you lose any progress saved in it. - Move the VM to different storage. If your host drive is slow (like a 5400 RPM HDD), moving the VM to an SSD or fast SAN can fix it permanently. Use Hyper-V Manager > Move Virtual Machine Storage wizard.
Why This Happens (The Geeky Part)
When you create a checkpoint, Hyper-V pauses writes to the original VHDX file and starts writing all new data to an .avhdx file. This .avhdx file grows as the VM keeps running. If the host disk can't write fast enough, or the VM is hammering the disk, the checkpoint waits for write completion. Hyper-V queues I/O requests, and if the queue backs up, you see the spinning wheel.
On top of that, production checkpoints call the VSS writer inside the VM to freeze the filesystem momentarily. If the VSS writer is busy (e.g., SQL Server, Exchange), it takes long to respond. That's why pausing database activity helps.
Prevention Tips
Stop this from happening again:
- Use fast storage – SSDs or NVMe drives for the VM's VHDX files. Spinning disks are a disaster for checkpoints.
- Monitor free space – keep at least 20% free on the host drive. Set up a simple alert when space drops below 15%.
- Schedule checkpoints during low-activity times – avoid running them during backups or heavy batch jobs.
- Limit checkpoint chains – don't keep more than 3 to 5 checkpoints in a chain. Long chains make creating new ones slower.
- Use Production checkpoints only if you need application-consistent snapshots. For testing VMs, Standard checkpoints are faster and less likely to hang.
If you still get stuck after all this, check the Hyper-V Event Log under Applications and Services Logs > Microsoft > Windows > Hyper-V-VMMS. Look for errors like 0x80042306 (VSS failure) or 0x80070057 (parameter error). These point to driver issues or corrupted checkpoint metadata.
One last thing: if the VM is running a critical SQL or Exchange server, avoid standard checkpoints. They can cause data corruption because they don't flush transactions. Production checkpoints are safer for those workloads, even if they're slower.
Was this solution helpful?