The error message as mentioned in the title of this article is generic. As such, this article provides a specific case that can lead to snapshot creation failure due to invalid parameters. The resolution section of this article guides you through the steps to identify the invalid parameter and make necessary changes to resolve the issue.
When attempting to take a virtual machine snapshot, the following error message is displayed:
"A specified parameter was not correct: spec.deviceChange.device. An error occurred while taking a snapshot: One of the parameters supplied is invalid."
/vmfs/volume/vvolds/vmware.log
####-##-##T##:##:##.###Z In(05) vcpu-0 - DISKLIB-LINK :DiskLinkNativeSnap: Attempting to take a snapshot of 'vvol://6bb7#######7b97/naa.600########4c73' which is already a snapshot of 'vvol://6bb7########7b97/naa.6006#########4058' ####-##-##T##:##:##.###Z In(05) vcpu-0 - DISKLIB-LINK : DiskLinkNativeSnap: Failed to create native snapshot of 'vmfs/volumes/vvol:####-##-##T##:##:##.###Z In(05) vcpu-0 - DISKLIB-LIB_CREATE : DiskLibPrepareOrCreateChildNativeSnap: Failed to create native snapshot child disk '/vmfs/volumes/vvol:####-##-##T##:##:##.###Z Er(02) vcpu-0 - DISKLIB-LIB_CREATE : DiskLib_CreateChild: failed to create child disk: One of the parameters supplied is invalid (1).
VMware vSphere ESXi
The ddb.objectParentUri has reference to naa.id that differs with naa.id mentioned in the Extent description. This posed as a cause for snapshot creation failure.
Furthermore, the ddb.objectParentUri entry in the base disk VMDK is typically expected when there is an existing snapshot. If no snapshot exists, the entry should be removed.
We proceeded to remove the ddb.objectParentUri entries from the VMDK files. The following steps were taken to resolve the issue:
mkdir vmdkbakcp ######01.vmdk vmdkbakddb.objectParentUri entries.Please read the example notes mentioned under the 'Additional Information' section of this article.
# Disk DescriptorFile
version=4
encoding="UTF-8"
CID=25018c36
parentCID=ffffffff
createType="vmfs"
# Extent description
RW 209715200 VMFS "vvol://6bb7###b97/naa.600#####4c73"
# The Disk Data Base
#DDB
ddb.objectParentUri = "vvol://6bb7#######b97/naa.600#########4058" >>>> need to be removed
ddb.thinProvisioned = "1"