Virtual machine snapshot operations fail with the following exception: 'A specified parameter was not correct: spec.deviceChange.device'
search cancel

Virtual machine snapshot operations fail with the following exception: 'A specified parameter was not correct: spec.deviceChange.device'

book

Article ID: 389268

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

  • The virtual machine failed to create a snapshot

  • The virtual machine utilizes a hybrid storage configuration, combining NFS and VVOL-based hard disks.

  • 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 fail on the virtual machine even when:
    • The virtual machine is migrated to a different ESXi host
    • The virtual machine is power cycled
    • The virtual machine 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 virtual machine's .vmx file contains the entry:
    snapshot.redoNotWithParent = "TRUE" 

Environment

VMware vSphere ESXi 8.x
VMware vCenter Server 8.x

Cause

The failure is observed under the following specific conditions:

  • Virtual machine is configured with snapshot.redoNotWithParent = "TRUE" in the .vmx configuration file
  • The virtual machine's .vmx configuration file is located on a non-VVOL datastore while one or more of its hard disks reside on a VVOL datastore.

Resolution

'snapshot.redoNotWithParent' is not a default parameter in a virtual machine'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. Power on the virtual machine
  11. 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:
        Obtain the VM's vmid
        vim-cmd vmsvc/getallvms

        Reload the .vmx file
        vim-cmd vmsvc/reload <vmid>
  7. Power on the virtual machine
  8. Take a snapshot of the VM

Additional Information

Creating snapshots in a different location than default virtual machine directory for VMware ESXi and VMware ESX