Error "query did not return a unique result" when attempting to migrate VMs between OVDCs in VMware Cloud Director
search cancel

Error "query did not return a unique result" when attempting to migrate VMs between OVDCs in VMware Cloud Director

book

Article ID: 389624

calendar_today

Updated On: 03-04-2025

Products

VMware Cloud Director

Issue/Introduction

  • We will see error snippet similar to below:
  • 2025-02-15 22:54:28,105 | ERROR    | task-service-activity-pool-3 | FutureUtil                     | Task future is not complete. | requestId=####-####-####-,re
    quest=POST https://xyz.com/api/vdc/###-####-####/action/instantiateVAppTe...,requestTime=1739660039738,remoteAddress=10.10.10.10:29352,userAgent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ...,accept=application/*+xml;version 36.3 vcd=###-###-###,task=###-###-### activity=(com.vmware.vcloud.backendbase.management.system.TaskActivity,urn:uuid:###-###-###-###)
    com.vmware.vcloud.api.presentation.service.InternalServerErrorException: Internal Server Error
            at com.vmware.vcloud.common.future.FutureUtil.convertExecutionException(FutureUtil.java:229)
            at com.vmware.vcloud.common.future.FutureUtil.checkCompletedFuture(FutureUtil.java:194)
            at com.vmware.vcloud.vdc.impl.InstantiateVAppActivity$AfterVAppCopyContentPhase.invokeInternal(InstantiateVAppActivity.java:273)
            at com.vmware.vcloud.vdc.impl.InstantiateVAppActivity$AbstractInstantiatePhase.invoke(InstantiateVAppActivity.java:159)
            at com.vmware.vcloud.activity.executors.ActivityRunner.runPhase(ActivityRunner.java:175)
            at com.vmware.vcloud.activity.executors.ActivityRunner.run(ActivityRunner.java:112)
            at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
            at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
            at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
            at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
            at java.base/java.lang.Thread.run(Thread.java:829)
    Caused by: org.hibernate.NonUniqueResultException: query did not return a unique result: 2
            at org.hibernate.impl.AbstractQueryImpl.uniqueElement(AbstractQueryImpl.java:844)
            at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:835)
  • To confirm Run a DB query to check if we have entries with same rp_moref values:
    • select id,vc_id,name,description,rp_moref from prov_vdc where rp_moref in (select rp_moref from prov_vdc GROUP BY rp_moref HAVING COUNT(rp_moref) > 1);
  • We will receive output similar to below:
    •                id               |                vc_id           |          name    |    description    |   rp_moref
      --------------------------------------+--------------------------------------+-------------------------+------------------
       123abc-5678-1234-1234-1234abcd | 123xyz-1234-1234-1234-1234abcv | test-PvDC-01     | test-PvDC-01      | resgroup-10
       123xyz-1234-5678-5678-1234wxyz | 567xyz-5678-5678-5678-1234wxyz | test-PvDC-02     | test-PvDC-02      | resgroup-10

Environment

VMware Cloud Director 10.3.3

Cause

This issue happens due to a known issue when vcd is connected to multiple vcenters and the resource pools on different vcenters were assigned the same resgroup-XXX

Resolution

  • This issue fixed in VMware Cloud Director 10.4