Using API calls to clone/relocate a virtual machine results in the VPXD service crashing.
vCenter 8.0
The cloneSpec portion of the JSON payload is missing the location property that maps to the VirtualMachineRelocateSpec. Since the API request omitted location property from their JSON payload, VPXD instantiates a valid VirtualMachineCloneSpec C++ object in memory with property value to a NULL pointer (0x0) which is protected memory space and crashes the VPXD service.
"cloneSpec": { "_typeName": "VirtualMachineCloneSpec", "template": false, "powerOn": false, "location": { # <-- This will make relocateSpec non null and initialize other members to false. "_typeName": "VirtualMachineRelocateSpec" } }
This will be fixed in a future release of vCenter.
As of the writing of this article it affects vCenter 8.0U3i and older.