VirtualBox vm USB passthrough issues ?

Since a while I ran into the problem where my VirtualBox vms weren’t able to mount external USB devices (which were available on the host system). After spending a night puzzling and many many reboots, I found a working solution.


Host:                                      Microsoft Windows 10 Enterprise, Version 1809

VirtualBox version:             6.0.4

  • Oracle VM VirtualBox Extension Pack 6.0.4

Virtual machines:             Microsoft Windows 10 Enterprise, Version 1803

  • Oracle VM VirtualBox Guest Additions Version 6.0.4

Ubuntu 18.04.2 LTS

  • Oracle VM VirtualBox Guest Additions Version 6.0.4

Whenever I wanted to mount an USB device in a vm I got no response at all. Trying it a second time got me this message:

USB device ‘SanDisk Ultra Fit’ with UUID {c851d433-3939-4170-a131-b5a2e6016da1} is busy with a previous request. Please try again later.

Result code:E_INVALIDARG (0x80070057)


This was consistent behaviour for both vms. So I shifted my focus towards the host.

Ater monitoring USB with USBDeview, working through several logfiles (Get-Content “C:\Users\<user>\VirtualBox VMs\Linux\Logs\*.log” -Wait -Tail 30), many discussions on IRC and following several suggestions for different forums I came to the conclusion that the solution is, either deleting the (host) registry key UpperFilters in HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class\{36FC9E60-C456-12CF-8078-44455443540000} or manually (re)installing the VirtualBox USB driver (rightmouse-click on C:\Program Files\Oracle\VirtualBox\drivers\USB\filter\VboxUSBMon.inf and choose Install). (Reboots required).


After this I got an error when trying to mount an USB device:

ERROR [COM]: aRC=E_FAIL (0x80004005) aIID={872da645-4a9b-1727-bee2-5585105b9eed} aComponent={ConsoleWrap} aText={Failed to create a proxy device for the USB device. (Error: VERR_PDM_NO_USB_PORTS)}, preserve=false aResultDetail=-2861

Solution, enable USB 3.0 (note, requires Extenstion Pack); for testing purposes I changed this to a lower version

I wasn’t able to determine the root cause; it would take more time and more thorough testing to come up with that. This workaround, however, seems to be consistent, too 🙂