Symptoms:
2019-12-12T16:02:09.743Z warning hostd[1B4C2B70] [Originator@6876 sub=Vmsvc.vm:/vmfs/volumes/<redacted>-db5986e0-695f-<redacted>/x/x.vmx] Snapshot create succeeded, but UID 650 not in list.
2019-12-12T16:02:09.743Z warning hostd[1B4C2B70] [Originator@6876 sub=Vmsvc.vm:/vmfs/volumes/<redacted>-db5986e0-695f-<redacted>/x/x.vmx] Failed operation
2019-12-12T16:02:09.744Z info hostd[1B4C2B70] [Originator@6876 sub=Vmsvc.vm:/vmfs/volumes/<redacted>-db5986e0-695f-<redacted>/x/x.vmx] State Transition (VM_STATE_CREATE_SNAPSHOT -> VM_STATE_ON)
2019-12-12T16:02:09.744Z info hostd[1B4C2B70] [Originator@6876 sub=Vimsvc.TaskManager] Task Completed : haTask-49-vim.VirtualMachine.createSnapshot-127313764 Status error
2019-12-12T16:02:09.595Z warning hostd[1B4C2B70] [Originator@6876 sub=Vmsvc.vm:/vmfs/volumes/<redacted>-db5986e0-695f-<redacted>/x/x.vmx] UpdateStorageAccessibilityStatusInt: The datastore is not accessible ide1:0.fileName = "/vmfs/volumes/<redacted>-4df76266-7681-<redacted>/contentlib-<redacted>-0b4f-4c5b-bc5b-<redacted>/<redacted>-4f37-47e9-aa1e-<redacted>/x.iso"
While virtual machines consist of multiple files, the ESXi host daemon (hostd) treats them as a single object. If any of the VMs are inaccessible, the virtual machine will be transitioned to an invalid load state.
For example, if an ISO has been attached to the VM, and that ISO was moved away from the datastore, or was deleted, without un-attaching it from the virtual machine beforehand, the virtual machine will experience such issues as described above.
Furthermore, when the datastore the VM is located on becomes inaccessible, hostd will not refresh the disk case. In this case, default entries with 0 capacity will be generated for those virtual disks that weren't cached yet.
In this situation, hostd will neither refresh the snapshot list for the VM. As a result, any snapshot creation tasks will fail. The snapshot itself is actually getting created, but the system fails to find the new UUID in the list, resulting in the task failing.
To solve this kind of issue:
# vim-cmd vmsvc/getallvms | grep <VM_name> | awk '{print $1}'
# vim-cmd vmsvc/reload <ID_from_step_2b>