SC VMM: Moving or Creating a VM fails with errors (2912) 0x80041001
Recently I have seen a rush of VMM cases that involve moving a VM through migration, or otherwise moving data (VHD, VHDX, ISO, etc.) around. I have found that in many of these cases there are suspended Background Intelligent Transfer Service (BITS) jobs. As long as there is a suspended job in the BITS queue on the VMM server or the Host you are moving data to, the move will fail.
Problem
Typical VMM trace showing the issue: In this case a VMM trace shows a copy job beginning. Locate the first step of an exception at the bottom of the stack and read upwards.The first line shows that BITS is starting a copy job: 'at Microsoft.VirtualManager.Engine.Deployment.BitDeployer.Copy().'
20:46:41.271 01-22-2014,0x09C4,0x0994,4,BitsDeployer.cs,506,0x00000000, Caught Exception,{00000000-0000-0000-0000-000000000000},1,
20:46:41.272 01-22-2014,0x09C4,0x0994,4,BitsDeployer.cs,506,0x00000000,"Microsoft.Carmine.WSManWrappers.WSManProviderException: An internal error has occurred trying to contact an agent on the Server.Domain.com server.
17993 Ensure the agent is installed and running. Ensure the WS-Management service is installed and running; then restart the agent.
at Microsoft.Carmine.WSManWrappers.ErrorContextParameterHelper.ThrowTranslatedCarmineException(ErrorInfo ei; Exception ex)
at Microsoft.Carmine.WSManWrappers.WsmanAPIWrapper.RetrieveUnderlyingWMIErrorAndThrow(SessionCacheElement sessionElement; COMException ce)
at Microsoft.Carmine.WSManWrappers.WsmanAPIWrapper.Enumerate(String url; String filter; Type type)
at Microsoft.Carmine.WSManWrappers.WSManRequest`1.Enumerate(String url; String wqlQuery)
at Microsoft.VirtualManager.Engine.Deployment.NativeDeploymentUtils.IsBitsRemoteApiAvailable(WSManConnectionParameters connectionParams; BitsRemoteApi remoteApi)
at Microsoft.VirtualManager.Engine.Deployment.LANAcceleratorFactory.GetDeploymentClientJob(WSManConnectionParameters connParams; WSManConnectionParameters remotePeerConnParams; String sourceFileName; String targetFilename; UInt16 port; Boolean privacy; UInt32 flags; String sessionID; Boolean resetJob)
at Microsoft.VirtualManager.Engine.Deployment.BITSDeployer.CreateClientJob(DeploymentFile file; CLIENT_JOB_TYPE clientJobType; WSManConnectionParameters clientConnection; WSManConnectionParameters serverConnection; UInt16 serverTcpPort; Boolean clientPrivacy; Boolean startAfresh)
at Microsoft.VirtualManager.Engine.Deployment.BitDeployer.Copy()
*** Carmine error was: HostAgentFail (2912); HR: 0x80041001
Resolution
Perform these steps on the VMM server and any Hosts where data is being moved. Ignore any messages referring to the command being deprecated
- Open an elevated command prompt
- Enter 'bitsadmin /list /allusers'
- You will see the number of jobs suspended. Each job begins with a GUID
- Cancel each suspended job by entering 'bitsadmin /cancel {GUID}', where GUID represents the BITS job suspended
- Repeat the previous step for all BITS jobs
- Enter 'bitsadmin /list /allusers' when done and no jobs should show suspended
I’ve written a KB article that details this same process. It will be available online soon.
jonjor
Comments
- Anonymous
January 01, 2003
thank you