Unable to Create Virtual Machine Snapshots: "One of the parameters supplied is invalid" due to stale redo entries
search cancel

Unable to Create Virtual Machine Snapshots: "One of the parameters supplied is invalid" due to stale redo entries

book

Article ID: 437551

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

When attempting to create a snapshot of a virtual machine in vSphere, the operation fails and the task reports the following error message:

Status: An error occurred while saving the snapshot: One of the parameters supplied is invalid.

This issue persists even after migrating the virtual machine between ESXi hosts, and no active snapshots are visible in the Snapshot Manager.

Environment

VMware vSphere / ESXi 7.x, 8.x

Cause

This issue is caused by stale snapshot metadata left behind in the virtual machine's configuration (.vmx) file following an interrupted backup or a failed snapshot consolidation task.

Specifically, the .vmx file retains empty redo log references for the attached disks, formatted as scsiX:Y.redo = "".

When there are no active snapshots, these lines should not exist. When a user or backup solution attempts to trigger a new snapshot, vSphere parses the .vmx file, encounters the blank "" value for the redo parameter, and fails the operation because it cannot process the invalid parameter.

Resolution

To resolve this issue, the stale .redo entries must be removed from the virtual machine's configuration file.

Step 1: Prepare the Virtual Machine

  1. Power off the affected virtual machine to safely modify the configuration files.
  2. Enable SSH on the ESXi host where the VM resides and log in as root.
  3. Navigate to the virtual machine's directory on the datastore:
    cd /vmfs/volumes/<Datastore_Name>/<VM_Name>

Step 2: Backup and Clean the Configuration File

  1. Create a backup of the current .vmx file before making any changes:
    cp <VM_Name>.vmx <VM_Name>.vmx.backup
  2. Run the following command to verify the presence of the stale empty redo entries:
    grep "\.redo = \"\"" <VM_Name>.vmx
  3. Use a text editor like vi to manually delete the affected lines, or run the following sed command to automatically remove any line containing .redo = "" from the file:
    sed -i '/\.redo = ""/d' <VM_Name>.vmx

Step 3: Reload and Verify

  1. Obtain the VMID for the virtual machine:
    vim-cmd vmsvc/getallvms | grep -i <VM_Name>
  2. Reload the virtual machine's configuration to ensure the host registers the cleaned .vmx file:
    vim-cmd vmsvc/reload <VMID>
  3. Power the virtual machine back on.
  4. Take a test snapshot to confirm the issue is resolved.

Additional Information

Alternative Workaround

Performing a Storage vMotion (migrating the virtual machine to a different datastore) can also resolve this issue. During a datastore migration, vSphere creates a fresh configuration file at the destination and naturally strips out invalid or orphaned parameters. However, for virtual machines with a high number of virtual disks, manually cleaning the .vmx file via SSH is a significantly faster resolution.