"801 Missing %ObjectType" and "VmmAdminUI has stopped working" errors in System Center Virtual Machine Manager

Applies to: System Center 2012 Virtual Machine ManagerMicrosoft System Center 2012 R2 Virtual Machine ManagerSystem Center 2016 Virtual Machine Manager

Home users: This article is only intended for technical support agents and IT professionals. If you're looking for help with a problem, please ask the Microsoft Community.

Symptoms


This article discusses how to troubleshoot the “801 Missing %ObjectType” and “VmmAdminUI has stopped working” errors in the System Center Virtual Machine Manager (SCVMM) Console. These 801 errors are triggered by communication issues, database corruption, deleted files, or concurrent changes in Hyper-V.

The following are common errors that are logged in the Jobs view in the Virtual Machine Manager (VMM) Console:

  • When there's an 801 Missing Object:
     

    Error

    Description

    Recommended action

    801

    VMM cannot find %ObjectType; object %FriendlyName;.

    Make sure that the library object is valid, and then try the operation again.

    For example:
    Error (801)
    VMM cannot find VM object ObjectID.
    Recommended Action
    Ensure the library object is valid, and then try the operation again.

    Additionally, the following error is logged in a SCVMM ETL trace:
     
    *** Carmine error was: LibObjectNotFound (801)
  • You receive the following error messages when a virtual machine (VM) refresh job fails:
    • VMM cannot find VM object:

      VMM cannot find VM object
    • VMM cannot find ISO object:

      VMM cannot find ISO object
    • VMM cannot find VirtualHardDisk:

      VMM cannot find VirtualHardDisk object
  • You receive the following error message when you try to open the properties of a VM that has an 801 issue:

    VmmAdminUI has stopped working


    The following information is displayed when you view problem details for the error or when you view the Windows Error Reporting log in MSINFO32:

    Windows Error Reporting logging in MSINFO32


    Note When a virtual machine is in a failed state via an 801 error, you cannot delete it from the console.
  • You may receive the following error message:
    Error (20413)
    VMM encountered a critical exception and created an exception report at C:\ProgramData\VMMLogs\SCVMM.

Cause


This issue may occur if VMM has orphaned records in the database that show objects that no longer exist.

Resolution


To resolve this issue, delete the orphaned objects from the database by following these steps:

  1. Determine whether the virtual machine is located on the host and if it's running or is stopped.
    • If the VM is located on the host but cannot be started, verify that the Object identified in the error message exists. For example, if the error states that it cannot find the virtual hard disk, navigate to the location where the hard disk is supposed to be stored, and then go to step 2.

    • If you don't know where the VHDX file is located, and the virtual machine is in a running state, run Get-SCVirtualMachine -VMMServer localhost -Name "<VMNAME>" in PowerShell on the SCVMM server, and then view the VM’s VHDX location in the “location" line.

      • If the VHDx file is not in that location, that's the problem.

      • If the VHDx is in that location, and the VM can be started in Hyper-V, go to step 2 to resolve the issue in the VMMAdminUI.

  2. Run get-scvirtualmachine <VMNAME> | Remove-scvirtualmachine –force to remove the VM from the VMM Console.

    Note THIS DOES NOT DELETE THE VM FILES.

    If the VM is removed from the SCVMM console, right-click the host, and then click Refresh Virtual Machines. Or, close and reopen the console.

    If the PowerShell command does not work, you must remove the VM from the SQL VirtualMachineDB database by running a script. 

    Important BACK UP THE VMM DATABASE before you do ANYTHING.

    To determine where the SCVMM database is being hosted from, go to Settings, and then click General. The database connection is shown as follows:


    Database connection
  3. In SQL Server Management Studio on the SQL server that hosts the SCVMM database, open the SQL instance. In the Databases folder on the left, select VirtualManagerDB (or whatever the database was renamed as), and make sure that the name of the database is listed in the drop-down list on the toolbar. Select New Query, and then paste the following script into the query field:
    BEGIN TRANSACTION T1DECLARE custom_cursor CURSOR FORSELECT ObjectId fromdbo.tbl_WLC_VObject WHERE [Name] = 'VMName'DECLARE @ObjectId uniqueidentifierOPEN custom_cursorFETCH NEXT FROM custom_cursor INTO @ObjectIdWHILE(@@fetch_status = 0)BEGINDECLARE vdrive_cursor CURSOR FORSELECT VDriveId, VHDId, ISOId fromdbo.tbl_WLC_VDrive WHERE ParentId = @ObjectIdDECLARE @VDriveId uniqueidentifierDECLARE @VHDId uniqueidentifierDECLARE @ISOId uniqueidentifier OPEN vdrive_cursorFETCH NEXT FROM vdrive_cursor INTO @VDriveId, @VHDId, @ISOIdWHILE(@@fetch_status = 0)BEGIN  DELETE FROM dbo.tbl_WLC_VDrive         WHERE VDriveId = @VDriveId  if(@VHDId is NOT NULL)  BEGIN           DELETE FROM dbo.tbl_WLC_VHD   WHERE VHDId = @VHDId   DELETE FROM dbo.tbl_WLC_PhysicalObject   WHERE PhysicalObjectId = @VHDId  END  if(@ISOId is NOT NULL)  BEGIN     DELETE FROM dbo.tbl_WLC_ISO          WHERE ISOId = @ISOId   DELETE FROM dbo.tbl_WLC_PhysicalObject   WHERE PhysicalObjectId = @ISOId  END      FETCH NEXT FROM vdrive_cursor INTO @VDriveId, @VHDId, @ISOId   ENDCLOSE vdrive_cursorDEALLOCATE vdrive_cursor-----------------DECLARE floppy_cursor CURSOR FORSELECT VFDId, vFloppyId fromdbo.tbl_WLC_VFloppy WHERE HWProfileId = @ObjectIdDECLARE @vFloppyId uniqueidentifierDECLARE @vfdId uniqueidentifierOPEN floppy_cursorFETCH NEXT FROM floppy_cursor INTO @vfdId, @vFloppyIdWHILE(@@fetch_status = 0)BEGIN      DELETE FROM dbo.tbl_WLC_VFloppy   WHERE VFloppyId = @vFloppyId    if(@vfdid is NOT NULL)  BEGIN   DELETE FROM dbo.tbl_WLC_VFD   WHERE VFDId = @vfdId   DELETE FROM dbo.tbl_WLC_PhysicalObject   WHERE PhysicalObjectId = @vfdId    END      FETCH NEXT FROM floppy_cursor INTO @vfdId, @vFloppyId   ENDCLOSE floppy_cursorDEALLOCATE floppy_cursor----------------DECLARE checkpoint_cursor CURSOR FORSELECT VMCheckpointId fromdbo.tbl_WLC_VMCheckpoint WHERE VMId = @ObjectIdDECLARE @vmCheckpointId uniqueidentifierOPEN checkpoint_cursorFETCH NEXT FROM checkpoint_cursor INTO @vmCheckpointId  WHILE(@@fetch_status = 0)BEGIN      DELETE FROM dbo.tbl_WLC_VMCheckpointRelation   WHERE VMCheckpointId = @vmCheckpointId        FETCH NEXT FROM checkpoint_cursor INTO @vmCheckpointId   ENDCLOSE checkpoint_cursorDEALLOCATE checkpoint_cursor----------------------------------Clean checkpointDELETE FROM dbo.tbl_WLC_VMCheckpointWHERE VMId = @ObjectID         exec [dbo].[prc_VMMigration_Delete_VMInfoAndLUNMappings] @ObjectId        DECLARE @RefreshId uniqueidentifier         DELETE FROM dbo.tbl_WLC_VAdapterWHERE HWProfileId = @ObjectId         DELETE FROM dbo.tbl_WLC_VNetworkAdapterWHERE HWProfileId = @ObjectId                        DELETE FROM dbo.tbl_WLC_VCOMPortWHERE HWProfileId = @ObjectId        DELETE FROM dbo.tbl_WLC_HWProfile        WHERE HWProfileId = @ObjectId        DELETE FROM dbo.tbl_WLC_VMInstance        WHERE VMInstanceId = @ObjectIdDELETE FROM dbo.tbl_WLC_VObjectWHERE ObjectId = @ObjectId    FETCH NEXT FROM custom_cursor INTO @ObjectId  ENDCLOSE custom_cursorDEALLOCATE custom_cursorCOMMIT TRANSACTION T1
    The only modification that you have to make in this script is in the fourth line, where you'll change "VMNAME" to the name of the VM you want to remove, still using single quotation marks. Then, you can run the script, and it will return a series of rows that are affected as follows.

    Object Explorer


    Note THIS DOES NOT DELETE THE VM FILES.
  4. Return to the SCVMM UI. You may see two instances of the VM that you ran the SQL script against. Right-click the host, and then click Refresh Virtual Machines. Or, you may have to close and reopen the console to reread the database.

 

More Information


This resolution can also be used for 801 errors that occur when you perform a Physical to Virtual conversion (P2V). Information about that solution can be found in the following article in the Microsoft Knowledge Base:
959596 Description of the System Center Virtual Machine Manager 2008 update to address physical to virtual (P2V) issues