Issue:

In VMware vCloud Director we can not power up a VM with error: vCloud could not find object with moRef “vm-xxx”.

You will be able to power up the VM on vSphere, but this is not reflected in the vCloud VM status.

 

Resolution:

Every object within a vSphere environment is internally tracked, and referred to, by a unique identifier called moRef ID (“Managed Object Reference ID”).

 

Every virtual infrastructure object managed by vSphere (datacenters, clusters, hosts, datastores, VMs, vApps, vSwitches and so on) has a moRef ID.

 

If the vCloud database has an incorrect moRef id for a Virtual Machine for example, as such vCloud can no longer track the VM and as such it can not manage it.

To correct this, we will need to remove the erroneous moRef id.

 

In my example, I am using oracle database and this will need oracle db manager installed.

Steps:

select id, name,vc_id ,moref, cloud_uuid,instance_uuid from vm where name like ‘%VM-NAME%’;

^you can see the moref the vm has

 

select vm_inv_id, name,moref ,vc_id, cloud_uuid,instance_uuid from vm_inv where name like ‘%VM-NAME%’;

^ confirm the same moref is here

 

select * from computevm where vmmoref = ‘vm-324226’;

^check if the above moref is here

 

select * from networked_vm where moref = ‘vm-324233’;

^check if the above moref is here

 

update computevm set vmmoref = ‘vm-324233’ where vmmoref = ‘vm-1939’;

^change the moref to new from old e.g. from 1931 to 324233

 

update networked_vm set moref = ‘vm-324233’ where moref = ‘vm-1939’;

^change the moref to new from old e.g. from 1931 to 324233

 

commit

^save the changes

 

Notes:

Above guide used some information from the following guides:

How to (quickly) match a moRef ID to a name in VMware vSphere

vCloud Error: Could not find object with moref “vm-xxx” and VC ID “xxx-xxx-xxx-xxx-xxx” in inventory category “VirtualMachine”