“License key has expired. Please install a valid license to use this product” during DRS Migrations
search cancel

“License key has expired. Please install a valid license to use this product” during DRS Migrations

book

Article ID: 400084

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

The vSphere client displays the message: “License key has expired. Please install a valid license to use this product” when performing DRS migrations.

Despite applying a valid license key to the ESXi host, the error continues to appear, DRS load balancing of the virtual machine for vm-example fails due to license expired, 

  • /var/log/vmware/vpxd/vpxd.log on the vCenter server : 

error vpxd[05##7] [Originator@6876 sub=drsExec opID=CdrsLoadBalancer-62##a00-3c45##b9-01] Failed migrating VM [vim.VirtualMachine:vm-81##3,vm-example] to host vim.HostSystem:host-11##7
 info vpxd[05##7] [Originator@6876 sub=vpxLro opID=CdrsLoadBalancer-62##a00-3c45##b9-01] [VpxLRO] -- FINISH task-54##154
error vpxd[05##7] [Originator@6876 sub=Default opID=CdrsLoadBalancer-62##a00-3c45##b9-01] [VpxLRO] -- ERROR task-54##154 --  -- vm-example -- Drm.ExecuteVMotionLRO: :vim.fault.LicenseExpired
--> Result:
--> (vim.fault.LicenseExpired) {
-->    faultCause = (vmodl.MethodFault) null,
-->    faultMessage = (vmodl.LocalizableMessage) [
-->       (vmodl.LocalizableMessage) {
-->          key = "com.vmware.vim.license.error.nolicense",
-->          arg = (vmodl.KeyAnyValue) [
-->             (vmodl.KeyAnyValue) {
-->                key = "info",
-->                value = "notinstalled"
-->             }
-->          ],
-->          message = "Please install a valid license to use this product"
-->       }
-->    ],
-->    licenseKey = "Invalid License: 00000-00000-00000-00000-00000"
-->    msg = "Received SOAP response fault from [<<io_obj p:0x00007f##41c8788, h:80, <UNIX ''>, <UNIX '/var/run/envoy-hgw/hgw-pipe'>>, /hgw/host-11##7/vpxa>]: initiateDestination
--> Received SOAP response fault from [<<io_obj p:0x000000fc3e894300, h:26, <TCP '127.0.0.1 : 49426'>, <TCP '127.0.0.1 : 8307'>>, /sdk>]: initiateDestination
--> License key has expired."
--> }
--> Args:
-->

  • /var/run/log/hostd.log on the ESXi :

In(166) Hostd[20##94]: [Originator@6876 sub=Solo.Vmomi opID=CdrsLoadBalancer-62##a00-2197##434-01-01-43-8065 sid=52##8dd user=vpxuser:<no user>] Activation finished; <<52##8dd -09b1-212b-####-9fdcae69634d, <TCP '127.0.0.1 : 8307'>, <TCP '127.0.0.1 : 33475'>>, ha-vmotionmgr, vim.host.VMotionManager.initiateDestination, <vim.version.v8_0_3_0, internal, 8.0.3.0>, [N11HostdCommon18VmomiAdapterServer19ActivationResponderE:0x0000004009d6d698]>
Db(167) Hostd[20##94]: [Originator@6876 sub=Solo.Vmomi opID=CdrsLoadBalancer-62##a00-2197##434-01-01-43-8065 sid=52##8dd user=vpxuser:<no user>] Arg migrat
ionId:
Db(167) Hostd[2099951]: --> 3783240#####3858
Db(167) Hostd[20##94]: [Originator@6876 sub=Solo.Vmomi opID=CdrsLoadBalancer-62##a00-2197##434-01-01-43-8065 sid=52##8dd user=vpxuser:<no user>] Arg dstConfigPath: Db(167) Hostd[2099951]: --> "/vmfs/volumes/66954582-d65fbe95-####-043201ece18a/vm-example/vm-example.vmx"
In(166) Hostd[20##94]: [Originator@6876 sub=Solo.Vmomi opID=CdrsLoadBalancer-62##a00-2197##434-01-01-43-8065 sid=52##8dd user=vpxuser:<no user>] Throw vim.fault.LicenseExpired
In(166) Hostd[20##94]: [Originator@6876 sub=Solo.Vmomi opID=CdrsLoadBalancer-62##a00-2197##434-01-01-43-8065 sid=52##8dd user=vpxuser:<no user>] Result:
In(166) Hostd[2099951]: -->       (vmodl.LocalizableMessage) {
In(166) Hostd[2099951]: -->    faultMessage = (vmodl.LocalizableMessage) [
In(166) Hostd[2099951]: --> (vim.fault.LicenseExpired) {
In(166) Hostd[2099951]: -->          key = "com.vmware.vim.license.error.nolicense",
In(166) Hostd[2099951]: -->          arg = (vmodl.KeyAnyValue) [
In(166) Hostd[2099951]: -->             (vmodl.KeyAnyValue) {
In(166) Hostd[2099951]: -->                key = "info",
In(166) Hostd[2099951]: -->                value = "notinstalled"
In(166) Hostd[2099951]: -->             }
In(166) Hostd[2099951]: -->          ],
In(166) Hostd[2099951]: -->       }
In(166) Hostd[2099951]: -->    ],
In(166) Hostd[2099951]: -->    licenseKey = "Invalid License: 00000-00000-00000-00000-00000",
In(166) Hostd[2099951]: -->    msg = ""
In(166) Hostd[2099951]: --> }
In(166) Hostd[2099989]: [Originator@6876 sub=Vcsvc.VMotion opID=CdrsLoadBalancer-62##a00-2197##434-01-01-d9-8089 sid=52##8dd user=vpxuser:<no user>] CompleteDestination [3783240#####3858]

  • /var/run/log/vpxa.log on the ESXi host : 

Er(163) Vpxa[2100198]: [Originator@6876 sub=Default opID=CdrsLoadBalancer-62##a00-2197##434-01-01-43] [VpxLRO] -- ERROR lro-55##64 -- 52e64422-c9f0-2074-####
-92093ce8b05e -- vmotionManager -- vim.host.VMotionManager.initiateDestination: :vim.fault.LicenseExpired
Er(163) Vpxa[2100128]: --> Result:
Er(163) Vpxa[2100128]: --> (vim.fault.LicenseExpired) {
Er(163) Vpxa[2100128]: -->    faultCause = (vmodl.MethodFault) null,
Er(163) Vpxa[2100128]: -->    faultMessage = (vmodl.LocalizableMessage) [
Er(163) Vpxa[2100128]: -->       (vmodl.LocalizableMessage) {
Er(163) Vpxa[2100128]: -->          key = "com.vmware.vim.license.error.nolicense",
Er(163) Vpxa[2100128]: -->          arg = (vmodl.KeyAnyValue) [
Er(163) Vpxa[2100128]: -->             (vmodl.KeyAnyValue) {
Er(163) Vpxa[2100128]: -->                key = "info",
Er(163) Vpxa[2100128]: -->                value = "notinstalled"
Er(163) Vpxa[2100128]: -->             }
Er(163) Vpxa[2100128]: -->          ],
Er(163) Vpxa[2100128]: -->          message = "Please install a valid license to use this product"
Er(163) Vpxa[2100128]: -->       }
Er(163) Vpxa[2100128]: -->    ],
Er(163) Vpxa[2100128]: -->    licenseKey = "Invalid License: 00000-00000-00000-00000-00000"
Er(163) Vpxa[2100128]: -->    msg = "Received SOAP response fault from [<<io_obj p:0x000000fc3ea30880, h:31, <TCP '127.0.0.1 : 18151'>, <TCP '127.0.0.1 : 83
07'>>, /sdk>]: initiateDestination
Er(163) Vpxa[2100128]: --> License key has expired."
Er(163) Vpxa[2100128]: --> }
Er(163) Vpxa[2100128]: --> Args:
Er(163) Vpxa[2100128]: -->
Er(163) Vpxa[2100128]: --> Arg migrationId:
Er(163) Vpxa[2100128]: --> 3783240#####3858
Er(163) Vpxa[2100128]: --> Arg dstConfigPath:
Er(163) Vpxa[2100128]: --> "ds:///vmfs/volumes/66954582-d65fbe95-####-043201ece18a/vm-example/vm-example.vmx"


ESXi host reconnect: 

  • /var/log/vmware/vpxd/vpxd.log

info vpxd[0##33] [Originator@6876 sub=vpxLro opID=m6##z9r3-2218100-auto-1bjhx-h5:703##970-2c] [VpxLRO] -- BEGIN task-540##72 -- host-11##7 -- vim.HostSystem.reconnect -- 52016579-446e-####-a99f-a9eac769f596(52da2731-f424-3442-####-e07b002322dc)
info vpxd[0##33] [Originator@6876 sub=HostCnx opID=m6##z9r3-2218100-auto-1bjhx-h5:703##970-2c] [VpxdHostCnx::AddConnection] cnx: 52414718-a535-78c4-####-839994eec060

Resolution

Workaround: 

  • As a first step, especially with multiple hosts are affected in a cluster, you can disable HA on the cluster and enable HA again. This reevaluates the inventory within the cluster and the hosts, which include licensing information. The licensing information seen from the host's UI will be applied again.
  • If that is not sufficient, you can also put the host(s) into maintenance mode, ssh into the host and restart the hostd service:
    • /etc/init.d/hostd restart
    • Then you can exit maintenance mode and trigger DRS again to test it.
    • In situations where you cannot put the host into the maintenance mode, you can test on a host with lower priority VMs. You can disable HA on the cluster and restart the hostd service. 
  • Identify the problematic host-id in the VPXD log, in the above example : host-11##7
  • Query the vpxd-profiler to find the hostname or the IP address of the host:  less /var/log/vmware/vpxd/vpxd-profiler.log | grep /HostStatus/HostId/11##7 | head -n 1
  • Disconnect and reconnect the problematic ESXi host 

Note: As a precaution, ensure the ESXi root password is successfully validated before disconnecting the host from vCenter Server.