/var/log/vmware/vlcm/vlcm.log shows errors as below:
YYYY-MM-DDTHH:MM:SS.###<Time_Zone> info vlcm [vmomiclient/client.go:56] [opID=9a43b243-109d-4093-b964-37d05c9fad8f-8a3e] Get VMOMI client: client(active:1, conn:[*(token), localhost:1080], http://localhost:1080/sdk) reused YYYY-MM-DDTHH:MM:SS.###<Time_Zone> info vlcm [vmomiclient/client.go:83] [opID=9a43b243-109d-4093-b964-37d05c9fad8f-8a3e] Release VMOMI client: client(active:0, conn:[*(token), localhost:1080], http://localhost:1080/sdk) YYYY-MM-DDTHH:MM:SS.###<Time_Zone> error vlcm [logger/teelogger.go:33] [opID=vapi] Structure 'com.vmware.vcenter.lcm.deployment.migration_upgrade.status.task' has a union that is missing a required field 'end_time' for this case YYYY-MM-DDTHH:MM:SS.###<Time_Zone> error vlcm [logger/teelogger.go:33] [opID=vapi] Invalid value for key 'post_upgrade_tasks' YYYY-MM-DDTHH:MM:SS.###<Time_Zone> error vlcm [logger/teelogger.go:33] [opID=vapi] Invalid field 'subtasks' in structure 'com.vmware.vcenter.lcm.deployment.migration_upgrade.status.info' YYYY-MM-DDTHH:MM:SS.###<Time_Zone> error vlcm [logger/teelogger.go:33] [opID=vapi] Invalid output YYYY-MM-DDTHH:MM:SS.###<Time_Zone> info vlcm [auth/session.go:210] Got session for vpxd-extension-a4f01a3a-a42e-4e14-8795-ab029bacdff8@vsphere.local vCenter server 8.0 U3
The issue is caused by the 'ndu.json' file retaining information from a previous upgrade failure.
service-control --stop vlcm mv /var/lib/vmware-vlcm/ndu.json /var/lib/vmware-vlcm/ndu.json_bkpservice-control --start vlcm