#1 Global Leader in Data Resilience

SureBackup for VM With VBS Enabled Fails With “Invalid change tracker error code”

KB ID: 4003
Product: Veeam Backup & Replication | 9.5 | 10 | 11 | 12 | 12.1 | 12.2
Published: 2020-08-17
Last Modified: 2024-07-15
mailbox
Get weekly article updates
By subscribing, you are agreeing to have your personal information managed in accordance with the terms of Veeam's Privacy Notice.

Cheers for trusting us with the spot in your mailbox!

Now you’re less likely to miss what’s been brewing in our knowledge base with this weekly digest

error icon

Oops! Something went wrong.

Please, try again later.

Challenge

A SureBackup job testing a VMware VM that has Virtualization-Based Security (VBS) enabled fails with the error:

An error occurred while taking a snapshot: Invalid change tracker error code. (An error occurred while taking a snapshot: Invalid change tracker error code.)

Cause

This error occurs because, by default, SureBackup modifies the VMX of all VMs being tested to set the entry 'vhv.enable' to false. By setting 'vhv.enable' to false, Virtual Hardware-Assisted Virtualization (VHV) is disabled. However, because VHV is a requirement of Virtualization-Based Security (VBS), the VM is then considered to have an "invalid configuration."

To confirm this detail, check the Task & Events within the vSphere Client for the error:

Invalid virtual machine configuration. Nested Hardware-Assisted Virtualization should be enabled when enabling VBS (Virtualization-Based Security).

The listed "Reconfigure virtual machine" task is related to the SureBackup job attempting to disable CTK on the VM, which fails due to the invalid config (indicated by the VimApi.InvalidVmConfig error). The failure to disable CTK then causes the subsequent "Create virtual machine snapshot" tasks to fail, which are displayed by the SureBackup job.

As shown below, the SureBackup Job log contains the same error as is shown in the vSphere Client:

Info         [VimApi] ReconfigVM, type "VirtualMachine", ref "vm-8675309"
Error        [SVmWareCtkHelper] Failed to disable CTK on VM, Ref: VmRef [vm-8675309]
Error        SetVmChangeTracking failed, vmRef 'vm-8675309', changeTrackingEnabled 'False' (System.Exception)
Error           at Veeam.Backup.ViSoap.CSoapConnection.SetVmChangeTracking(String vmRef, Boolean changeTrackingEnabled)
Error           at Veeam.Backup.Core.SVmWareCtkHelper.DisableCtkSafe(CSoapConnection soapConn, CVmRef vmRef)
Error        Invalid virtual machine configuration. (Nested Hardware-Assisted Virtualization should be enabled when enabling VBS (Virtualization-Based Security)) (Veeam.Backup.ViSoap.ViServiceFaultException)
Error        VimApi.InvalidVmConfig

 

In summary, VMs using VBS require VHV, but SureBackup disables VHV for VMs being tested, which breaks VBS, causing the SureBackup test for the VM to fail.

Solution

To resolve this issue, create the following registry value on the Veeam Backup Server.

When set to '0', this registry value will force SureBackup to not change 'vhv.enable' to false within the VMX of VMs it tests.
This registry value will take effect on the next run of the SureBackup job.

Key Location: HKLM\SOFTWARE\Veeam\Veeam Backup and Replication\SureBackup
Value Name: UseVhvEnable
Value Type: DWORD (32-Bit) Value
Value Data: 0

Note: The key SureBackup does not exist by default; it must be created, and then the value must be created within it.

regesitry example

More Information

The 'UseVhvEnable' setting state can be checked within the SureBackup job logs.

Default settings, Value=True

[SureBackup] Dump options
[SureBackup] =============================================================================================================================================================
[SureBackup] | # | Name | Type | Value | Default | Description |
[SureBackup] =============================================================================================================================================================
[SureBackup] | 12 | UseVhvEnable | Boolean | True | True | Enables or disables using Vhv.Enable parameter in VMX file

Modified setting, Value=False

[SureBackup] Dump options
[SureBackup] =============================================================================================================================================================
[SureBackup] | # | Name | Type | Value | Default | Description |
[SureBackup] =============================================================================================================================================================
[SureBackup] | 12 | UseVhvEnable | Boolean | False | True | Enables or disables using Vhv.Enable parameter in VMX file
To submit feedback regarding this article, please click this link: Send Article Feedback
To report a typo on this page, highlight the typo with your mouse and press CTRL + Enter.

Spelling error in text

This site is protected by hCaptcha and its Privacy Policy and Terms of Service apply except as noted in our Privacy Policy.
Thank you!

Thank you!

Your feedback has been received and will be reviewed.

Oops! Something went wrong.

Please, try again later.

You have selected too large block!

Please try select less.

KB Feedback/Suggestion

This form is only for KB Feedback/Suggestions, if you need help with the software open a support case

By submitting, you are agreeing to have your personal information managed in accordance with the terms of Veeam's Privacy Notice.
This site is protected by hCaptcha and its Privacy Policy and Terms of Service apply except as noted in our Privacy Policy.
Verify your email to continue your product download
We've sent a verification code to:
  • Incorrect verification code. Please try again.
An email with a verification code was just sent to
Didn't receive the code? Click to resend in sec
Didn't receive the code? Click to resend
Thank you!

Thank you!

Your feedback has been received and will be reviewed.

error icon

Oops! Something went wrong.

Please, try again later.