You're running a backup job or migrating a VM, and everything looks fine. Then you get the error: Snapshot consolidation failed. This usually happens after a failed snapshot removal or when a backup tool leaves a snapshot behind. The VM still runs, but it gets slow. Disk performance drops. Sometimes the VM won't even start again.
I've seen this on VMware vSphere 7 and 8. Hyper-V has a similar issue. The real trigger is when a snapshot delta file (the -delta.vmdk or .avhdx) can't be merged back into the base disk. This happens if the snapshot chain is broken—like if the VM was moved between datastores while snapshots were active.
Why This Happens
Every snapshot creates a new delta file. When you delete a snapshot, vSphere tries to merge the delta into the parent. If the merge fails—because of a corrupted delta file, insufficient disk space, or a locked file—the consolidation stops. The delta file stays. vSphere then marks the VM as having an unconsolidated snapshot.
On Hyper-V, checkpoints work the same way. A failed merge leaves .avhdx files behind, and the VM complains about consolidation needed.
Step-by-Step Fix
Here's the fix that works 9 out of 10 times. Do these steps in order. Don't skip around.
Step 1: Check the Snapshot Tree
- Open vSphere Client (or vCenter).
- Right-click the VM and go to Snapshots > Manage Snapshots.
- Look for any snapshot with a red X or warning icon. If you see one, that's your problem.
- If the tree shows only one snapshot or seems empty, still proceed—the delta file might be hidden.
Expected outcome: You'll see a list of snapshots. A healthy VM shows a single line or none. A broken chain shows multiple entries.
Step 2: Force Consolidation from vSphere
- Right-click the VM again.
- Go to Snapshots > Consolidate.
- vSphere will try to merge all delta files. This can take 5-30 minutes depending on disk size.
- Wait for the task to complete. If it succeeds, you're done.
Expected outcome: The task runs. If it fails again, you'll see a new error with a message like "Cannot consolidate due to locked file." Move to Step 3.
Step 3: Use PowerCLI to Force Consolidation
- Open PowerCLI (install it if you haven't:
Install-Module -Name VMware.PowerCLI). - Connect to vCenter:
Connect-VIServer -Server your-vcenter - Get the VM object:
$vm = Get-VM -Name "Your-VM-Name" - Start consolidation:
$vm | Set-VM -SnapshotConsolidate -Confirm:$false - Check the task status:
Get-Task | Where { $_.ObjectId -eq $vm.Id -and $_.Name -eq "SnapshotConsolidate" }
Expected outcome: PowerCLI runs the same consolidation but skips some GUI checks. If it still fails, you'll need to manually clean delta files.
Step 4: Manually Remove Stuck Delta Files (Advanced)
Only do this if Steps 1-3 failed. This is risky—back up the VM first. If you mess up, the VM won't boot.
- SSH into the ESXi host where the VM runs.
- Navigate to the VM's datastore folder:
cd /vmfs/volumes/datastore-name/VM-folder - List all files:
ls -la - Look for any
*-delta.vmdkfiles that don't match the snapshot tree. If you see one, note its name. - Take a snapshot of the VM right now (as a safety net).
- Delete the orphaned delta file:
rm filename-delta.vmdk - Run consolidation again from vSphere.
Expected outcome: The delta file is gone. vSphere now consolidates without the stuck file. The VM should show no snapshots.
What to Check If It Still Fails
If you're still stuck after all this, here's what I've seen cause the issue:
- Insufficient disk space. Consolidation needs free space equal to the largest delta file. Check your datastore:
df -hon ESXi. Free up space if needed. - File locks from other processes. A backup agent or antivirus might hold a lock. Stop those services temporarily.
- Corrupted base VMDK. If the base disk has bad blocks, no consolidation will work. Restore from backup.
- VM hardware version mismatch. After a cross-host migration, older hardware versions sometimes cause issues. Upgrade the VM hardware.
One last thing: if you're on Hyper-V, the fix is similar. Open Hyper-V Manager, right-click the VM, go to Checkpoints, and choose Consolidate. If that fails, delete orphaned .avhdx files from the VM's folder manually.
That's it. Most of the time, Step 2 works. When it doesn't, PowerCLI usually saves the day. The manual deletion is a last resort, but it's saved me more than once.