Error: "A specified parameter was not correct: spec.deviceChange.device" when attempting to take a snapshot on a VM
search cancel

Error: "A specified parameter was not correct: spec.deviceChange.device" when attempting to take a snapshot on a VM

book

Article ID: 389268

calendar_today

Updated On: 05-14-2025

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms  may include one or more of these issues:

  • Taking a snapshot on a VM fails
  • The VM is configured with mixed storage hard disks such as NFS and VVOLs
  • The snapshot fails with the following error:

    A specified parameter was not correct: spec.deviceChange.device An error occurred while taking a snapshot: One of the parameters supplied is invalid. An error occurred while saving snapshot file "/vmfs/volumes/<datastore>/VM/VM.vmsn". An error occurred while saving the snapshot: One of the parameters supplied is invalid.

  • Snapshots still fail on the VM even when:
    • the VM is migrated to another ESXi host
    • the VM is power cycled
    • the VM is cloned and a snapshot of the cloned VM still fails

  • Storage migration of the disks to where the .vmx file resides allows the snapshot to work
  • The VM's .vmx file contains the entry:

    snapshot.redoNotWithParent = "TRUE" 
  • The vmware.log file may contain one of the following entries (these indicate the VMDK resolution)

    vcpu-# - DISKLIB-LINK  : DiskLinkNativeSnap: Attempting to take a snapshot of 'vsan://#########' which is already a snapshot of 'vsan://###########'.
    vcpu-# - DISKLIB-LIB_CREATE   :DiskLibPrepareOrCreateChildNativeSnap: Failed to do native snapshot: One of the parameters supplied is invalid
    vcpu-# - DISKLIB-LIB_CREATE   : DiskLib_CreateChild: Failed to create child disk: One of the parameters supplied is invalid
    vcpu-# - SNAPSHOT: SnapshotBranchDisk: Failed to branch disk natively: '/vmfs/volumes/vsan:#############/############/VM_NAME_#.vmdk' -> '/vmfs/volumes/vsan:#########/###########/VM_NAME_#-000001.vmdk' : One of the parameters supplied is invalid (1)

Cause

The issue occurs if the following is configured:

  • VM is configured with snapshot.redoNotWithParent = "TRUE" in the .vmx configuration file
  • The .vmx file resides on a non-VVOL datastore
  • One of the VM's hard disks resides on a VVOL datastore

This issue also may occur when a vmdk file has been modified outside of specified parameters.

 

Resolution

.VMX Issue:

'snapshot.redoNotWithParent' is not a default parameter in a VM's configuration file. It is typically added when a user wants to change the location where snapshots are stored from the VM's original working directory. Additional information can be found in Creating snapshots in a different location than default virtual machine directory for VMware ESXi and VMware ESX.

Since this is an optional configured parameter, it can be removed from the configuration file.

From the vSphere UI

  1. Power off the virtual machine.
  2. Right-click the virtual machine and click Edit Settings.
  3. Click the VM Options tab.
  4. Expand the Advanced section.
  5. For Configuration Parameters, click on EDIT CONFIGURATION.
  6. In the Name column, search for: snapshot.redoNotWithParent
  7. Delete the True value. (Note: Empty values will be removed (supported on ESXi 6.0 and later).)
  8. Click on OK.
  9. Click on OK.
  10. Take a snapshot of the VM 

    or alternatively

  11. Power on the virtual machine
  12. Take a snapshot of the VM

From Command Line

  1. SSH to the ESXi host where the VM resides
  2. Navigate to the VM's working directory where the .vmx file is located
  3. Edit the VM's .vmx using an editor such as vi
  4. Remove the line:

    snapshot.redoNotWithParent = "true"

  5. Save the changes and close the virtual machine's .vmx configuration file.
  6. Reload the virtual machine configuration by unregistering and re-registering it in the inventory or by command line:
    1. Obtain the VM's vmid

      vim-cmd vmsvc/getallvms

    2. Reload the .vmx file

      vim-cmd vmsvc/reload <vmid>

  7. Take a snapshot of the VM

    or alternatively

  8. Power on the virtual machine
  9. Take a snapshot of the VM

.VMDK issue:

One of the disk base .vmdk files may have a line like the following:

ddb.objectParentUri = #############

This line should only be found in a snapshot vmdk file. A backup of the .vmdk file should be taken and then this line should be removed to test if it fixes the issue.

  1. SSH to the ESXi host where the VM resides
  2. Navigate to the VM's working directory where the .vmx file is located
  3. Edit the VM's offending .vmdk using an editor such as vi
  4. Remove the line:

    ddb.objectParentUri = #############
  5. Take snapshot of the VM



Additional Information