"A digest operation has failed. An error occurred while taking a snapshot" in the vSphere client.vmware.log located in "/vmfs/volumes/<datastoreUUID>/<VM_folder>" shows digest operation failed error messages:vmx| DIGESTLIB-FILE: DigestLib_FlushMetaDataToDisk: digest header of parent digest has CID 0x3f45376c new CID of child digest is 0x529596f4, parent digest may be corrupt, failing meta-data update on child.vmx| DISKLIB-VMFS : "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-digest-flat.vmdk" : closed.vmx| DISKLIB-LIB_CREATE : DiskLibPostCreateChild: could not init child digest disk: Invalid parameter (8).vmx| DISKLIB-VMFS : "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-digest-sesparse.vmdk" : closed.vmx| DISKLIB-VMFS : "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-000001-sesparse.vmdk" : closed.vmx| DISKLIB-LIB_CREATE : Encountered error in DiskLibPostCreateChild: A digest operation has failed...vmx| DISKLIB-LIB_CREATE : Failed to create link: A digest operation has failed (66)vmx| Er(02) vcpu-X - DISKLIB-LIB_CREATE : DiskLib_CreateChild: failed to create child disk: A digest operation has failed (66)...vmx| DISKLIB-LIB : DiskLibUnlinkInt: Disk delete successfully completed { result:0, Msg: 'The operation completed successfully', fileName:'/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-000001-digest.vmdk'}vmx| SNAPSHOT: SnapshotBranchDisk: Failed to branch disk: '/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>.vmdk' -> '/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>.vmdk' : A digest operation has failed (66)vmx| DISKLIB-VMFS : "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-digest-flat.vmdk" : closed.vmx| DISKLIB-VMFS : "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-flat.vmdk" : closed.vmx| SNAPSHOT: SnapshotBranch failed: A digest operation has failed (5).
vpxa.log located in "/var/run/log" has entries similar to:YYYY-MM-DDTHH:MM:SS info vpxa[5899216] [Originator@6876 sub=Default opID=<OP-ID>] [VpxLRO] -- ERROR task-#### -- vpxa -- vpxapi.VpxaService.createSnapshot: vim.fault.GenericVmConfigFault:--> Result:--> (vim.fault.GenericVmConfigFault) {--> faultCause = (vmodl.MethodFault) null,--> faultMessage = (vmodl.LocalizableMessage) [--> (vmodl.LocalizableMessage) {--> key = "msg.checkpoint.save.fail2.std3",--> arg = (vmodl.KeyAnyValue) [--> (vmodl.KeyAnyValue) {--> key = "1",--> value = "msg.disklib.DIGEST"--> }--> ],--> message = "An error occurred while saving the snapshot: A digest operation has failed."--> },--> (vmodl.LocalizableMessage) {--> key = "msg.checkpoint.save.fail2.std",--> arg = (vmodl.KeyAnyValue) [--> (vmodl.KeyAnyValue) {--> key = "1",--> value = "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-Snapshot.vmsn"--> }--> ],--> message = "An error occurred while saving snapshot file "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-Snapshot.vmsn"."--> }
Corruption or metadata inconsistency in the virtual machine's digest files (-digest.vmdk) prevents the ESXi host from successfully branching the disk during a snapshot. This often happens when scsi#:#.digest is enabled but the underlying metadata is invalid.
As a preliminary step, restart the virtual machine. If the issue persists, follow these steps:
Power-off the virtual machine
Navigate to the VM's folder on the datastore:cd /vmfs/volumes/<datastore_name>/<VM_folder>/
Create backup copies of critical files:cp <VM_name>.vmdk <VM_name>.vmdk.backupcp <VM_name>.vmx <VM_name>.vmx.backup
Create a temporary folder within the VM directory:mkdir digest_temp
Edit the VMDK descriptor file to remove digest references:
vi editor to edit .vmdk descriptor file:vi <VM_name>.vmdki to enter insert modeddb.digestFilename = "<VM_name>-digest.vmdk"ddb.digestType = "file"Esc to exit insert mode:wq! to save and exitEdit the virtual machine (.vmx) configuration file to remove digest setting:
vi editor to edit .vmx file: vi <VM_name>.vmxi to enter insert modescsi0:0.digest = "TRUE"Esc to exit insert mode:wq! to save and exitMove digest files to the temporary folder:mv <VM_name>-digest.vmdk digest_temp/mv <VM_name>-digest-flat.vmdk digest_temp/
Power-on the virtual machine.
Attempt to create a new snapshot to verify the issue is resolved.