Had a strange one after deploying an XP VM from a template today – the VM would not power on and threw the following error:

An error was received from the ESX host while powering on VM [VM name].
cpuid.coresPerSocket must be a number between 1 and 8

Digging around on google the error seemed to be related to over-allocating vCPUs (e.g. assigning 8 vCPUs on a VM with 4 physical CPU cores). This was a single vCPU machine on a 12 processor host, so not likely to be that! It did give me the idea that maybe the VMX had an error, so I edited the VM hardware and added an extra CPU and saved the config. I then edited it back to a single CPU and powered on the machine – it worked!

Examining the vmx showed that the coresPerSocket was set to zero which is incorrect:

cpuid.coresPerSocket = "0"

And after the change, the numvcpus setting was added and coresPerSocket updated:

cpuid.coresPerSocket = "1"
numvcpus = "1"

Fortunately, it’s a simple fix and once I’d updated the template, not something that will bother me again!