Hyper-V Feature/Components missing

Greetings! I normally wouldn’t post here, but I’ve run out of ideas to try to get docker running on my desktop. I am running into an issue where Hyper-V will continually tell me that there’s a component missing which is not allowing me to run vms, which in turn is not allowing docker to run. I have reinstalled, restarted, and re-run as administrator every application (and various powershell tools like dism.exe, mofcomp, and bcedit) related to docker and hyper-v countless numbers of times in various orders and am out of ideas at this point.

My Systeminfo

1.I am running on Windows 10 Pro edition
2.My computer components are listed as being supported through every forum I’ve come across
3.I’ve run docker previously on this box, so I’m sure that hardware shouldn’t be an issue

What I’ve made sure is installed

1.Ensured that my BIOS virtualization is enabled.
2.Ensured that hyper-v feature is enabled on windows.
3.I have tried all the steps listed below with the Docker Desktop Installer.exe, Docker for Windows Installer.exe, and even tried DockerToolbox-19.03.1.exe (though that brought up more issues that I couldn’t solve).

Steps I’ve taken

1.Turned off firewall
2.Uninstalled docker
3.disabled Hyper-v feature
4.disabled Hyper-v BIOS
5.enabled Hyper-v BIOS
6.enabled Hyper-v feature
7.installed docker --> error

Lastly, here’s a picture (with red highlights) that should sum up all of the above as succinctly as I could make it. I don’t know what I’m doing wrong here :confused:

Error response from daemon: hcsshim::CreateComputeSystem 902a21ffdc088264078c436a02eefab111ced3d489b03a9c5d7822d5760d3e96: The virtual machine could not be started because a required feature is not installed.

Please tell us what version of Docker Desktop you try to install.
If you made experiments with Toolbox this may have changed registry settings and other things that are difficult to reset.

1 Like

Hi Tekki! Thanks for the quick response.

Docker Desktop : 2.2.0.3

I did not make any registry edits with Toolbox (at least not by hand). From what I remember, I ran the installer, tried to run the initial terminal window that it adds, and then ran into an error saying that Hyper-V was installed and then couldn’t continue with it’s process.

I think the full error with toolbox was “Either use Hyper-V as a driver, or disable the Hyper-V hypervisor. (To skip this check, use --virtualbox-no-vtx-check)” which was as far as I got trying to go the toolbox route.

Still have made no progress on this >.> tried uninstalling and reinstalling everything a few more times this past week. no luck :confused:

Did you just uninstall the program or delete the stuff related to Docker at other places too? There are Docker and Docker Desktop folders in %appdata%, %localappdata%, %programdata% that are probably still there after a simple uninstallation. Some older versions created a %userprofile%\.docker folder.
If nothing works, maybe you could try to install the experimental edge version.

Thanks for the additional advice! Nuked all those folders. No luck.

Even went as far as to try to uninstall/reinstall a bunch of hyper-v stuff in the “WinSxS” folder (that was another can of worms) and tried reinstalling everything with and without those edits. Still getting the same issue…

here’s my docker “log.txt” file too (should be scrubbed of any personal info) that should show all the errors I run into, main takeaways look like the "failed to read gateway forwards "gateeway_forwards.json"from vpnkit.exe which some users report solving with “nested virtualization” but that doesn’t seem like a solid fix, nor the one that I want to approach.

https://pastebin.com/FrUSPWgs

Tried another round of re-installation today still no luck. Anyone know roadmap for next releases? I’m going to try going with older versions of Docker this week and see if I can get some better results.

Maybe the error is somewhere else. Did you check your BIOS? Is it up to date? Is virtualization enabled and VT-d disabled?

BIOS is up-to-date, virtualization enabled, VT-d (bit different name on my gigabyte mobo) is currently disabled (tried it ‘enabled’ as well)…

Might consider reinstalling my windows OS, buuut that might be a bit overkill and will require a lot of effort. Sounds like another trial this weekend

Hey! I happen to be having the same issue. For me, when I run Windows containers, everything works smoothly. Switching to Linux containers crashes Docker, with the same Hyper-V component errors you were having.
I’m not running docker inside another VM or any nested situation like that.
Did you ever resolve this issue?

No still havent gotten this resolved (kind of took a backseat due to the COVID crisis lol). I’ve seen two updates to docker since this problem started for me and still have made no progress made. I’ll try to give it another shot this weekend though and post an update.

Dang. I think the issue is something to do with my Hyper-V files - running Docker on my laptop on the same build of windows and Docker works fine. I’m thinking the only practical way forward is a quick windows reinstall

Small amount of progress. I’m 100% sure it’s because Hyper-V is the issue. I can’t even start VMs directly from the Hyper-V software without running into a generic “missing component” error. Very frustrating that it doesn’t tell you what component, but I digress. The latest update to docker seems to give a new error output though, so I’ll be digging into that this week.

Docker.Core.HttpBadResponseException:
Unhandled exception: job failed with message: 'DockerDesktopVM' failed to start. (Virtual machine ID 41C10101-9139-478C-8866-700CDB9C372F)

The Virtual Machine Management Service failed to start the virtual machine 'DockerDesktopVM' because one of the Hyper-V components is not running (Virtual machine ID 41C10101-9139-478C-8866-700CDB9C372F).
  at Docker.Core.Logging.ClientExceptionInterceptor.<InterceptResponseAsync>d__0.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Core\Logging\ClientExceptionInterceptor.cs:line 17
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Docker.Core.Logging.LoggingMessageHandler.<SendAsync>d__4.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Core\Logging\LoggingMessageHandler.cs:line 37
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Net.Http.HttpClient.<FinishSendAsyncBuffered>d__58.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.Core.HttpClientExtensions.<PostJsonWithJsonResponseAsync>d__1`1.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Core\HttpClientExtensions.cs:line 22
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.Core.BackendAPI.BackendAPIClient.<StartHyperVVMAsync>d__11.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Core\BackendAPI\BackendAPIClient.cs:line 102
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.Engines.LinuxHyperVEngine.<DoStartAsync>d__12.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\LinuxHyperVEngine.cs:line 60
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.ApiServices.StateMachines.TaskExtensions.<WrapAsyncInCancellationException>d__0.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\TaskExtensions.cs:line 29
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__5.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:line 67
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__5.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:line 92
Original stacktrace:
   at Docker.Backend.HyperVInfrastructure.HandleUpdatedJob(CIMConcreteJob updatedJob) in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Backend\HyperV\HyperVInfrastructure.cs:line 800
   at Docker.Backend.HyperVInfrastructure.<HandleMaybeAsyncJob>d__37.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Backend\HyperV\HyperVInfrastructure.cs:line 740
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Docker.Backend.HyperVInfrastructure.<StartVMAsync>d__29.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Backend\HyperV\HyperVInfrastructure.cs:line 588
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.Backend.HyperV.<StartAsync>d__7.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Backend\HyperV\HyperV.cs:line 101
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.Backend.HttpAPI.HyperVAPIController.<StartAsync>d__8.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Backend\HttpAPI\HyperVAPIController.cs:line 44
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Threading.Tasks.TaskHelpersExtensions.<CastToObject>d__1`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__15.MoveNext()

Is this post locked? The bug is still persisting but I’ve narrowed it down to Hyper-V causing the bug… so perhaps not a docker issue.

In either case, latest docker version gave me a different error output to work with, so I’ll be digging into that ::

Docker.Core.HttpBadResponseException:
Unhandled exception: job failed with message: 'DockerDesktopVM' failed to start. (Virtual machine ID 41C10101-9139-478C-8866-700CDB9C372F)

The Virtual Machine Management Service failed to start the virtual machine 'DockerDesktopVM' because one of the Hyper-V components is not running (Virtual machine ID 41C10101-9139-478C-8866-700CDB9C372F).
   at Docker.Core.Logging.ClientExceptionInterceptor.<InterceptResponseAsync>d__0.MoveNext() in     C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Core\Logging\ClientExceptionInterceptor.cs:line 17
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Docker.Core.Logging.LoggingMessageHandler.<SendAsync>d__4.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Core\Logging\LoggingMessageHandler.cs:line 37
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Net.Http.HttpClient.<FinishSendAsyncBuffered>d__58.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.Core.HttpClientExtensions.<PostJsonWithJsonResponseAsync>d__1`1.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Core\HttpClientExtensions.cs:line 22
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.Core.BackendAPI.BackendAPIClient.<StartHyperVVMAsync>d__11.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Core\BackendAPI\BackendAPIClient.cs:line 102
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.Engines.LinuxHyperVEngine.<DoStartAsync>d__12.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\LinuxHyperVEngine.cs:line 60
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.ApiServices.StateMachines.TaskExtensions.<WrapAsyncInCancellationException>d__0.MoveNext() in     C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\TaskExtensions.cs:line 29
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__5.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:line     67
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__5.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:line     92
Original stacktrace:
   at Docker.Backend.HyperVInfrastructure.HandleUpdatedJob(CIMConcreteJob updatedJob) in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Backend\HyperV\HyperVInfrastructure.cs:line 800
   at Docker.Backend.HyperVInfrastructure.<HandleMaybeAsyncJob>d__37.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Backend\HyperV\HyperVInfrastructure.cs:line 740
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Docker.Backend.HyperVInfrastructure.<StartVMAsync>d__29.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Backend\HyperV\HyperVInfrastructure.cs:line 588
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.Backend.HyperV.<StartAsync>d__7.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Backend\HyperV\HyperV.cs:line 101
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.Backend.HttpAPI.HyperVAPIController.<StartAsync>d__8.MoveNext() in C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Backend\HttpAPI\HyperVAPIController.cs:line 44
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Threading.Tasks.TaskHelpersExtensions.<CastToObject>d__1`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__15.MoveNext()

I’m almost sure that this is a Hyper-V problem now. Seems that even the hyper-v manager throws an error on my computer when I try to just create a “normal” vm with it. “failed to start the virtual machine because one of the Hyper-V components is not running.”

suuuuper helpful/specific message :roll_eyes: but I think it narrows it down to the application that’s fucking up. Still can’t figure out WHAT component is missing, but I have a suspicion that my Hyper-V manager thinks that it’s running in a nested environment, which I’m not. This is the top level machine, physical. Still investigating this…

Same issue here! Win10 Pro, Hyper-V and Containers features enabled but the latest stable Docker built not running saying “Cannot enable Hyper-V”

Finally! It’s OVER.

Fresh install did the trick, I’m talking cleeeeean installation of windows 10, pro version on a brand new harddrive.

Could have been that I previously had a deactivated account.
Could have been that I had messed with too many registry edits in the past.
Could have been some odd permissions issue that was eluding me.

Whatever the case, it’s finally over.

[SOLVED] Perform a fresh, activated installation of Windows Pro 10 on a new harddrive. Enable All the Hyper-V features from “Windows Features”. Restart, Install docker, “Docker Desktop Installer.exe”, and that’s it.

Note: I wish I knew the reason as to why this happened, but hey, it’s finally over

This is ridiculous. I just put on a fresh installation of Windows 10 Pro and this application STILL can’t start Hyper-V services even though they’re enabled on my system… for a developmental software, this should not be so damn buggy. And no help from the people who made it either?

Hey jclind, do you have an activated Windows 10 Pro setup?

What kind of Motherboard are you using? I’m guessing if you have the Hyper-V service feature enabled, your mobo should be able to support this (box is grayed out if it’s not enabled on the mobo or if your mobo doesn’t support Hyper-V from what I’ve seen).

I know the struggle you’re going through right now and can totally relate, it could be helpful to track down where the differences between our setups are to help diagnose where this issue is coming from.