E_FAIL (0x80004005)

VirtualBox USB Passthrough Not Detecting Device? Fix It Now

Server & Cloud Intermediate 👁 29 views 📅 Jun 15, 2026

Struggling with VirtualBox not seeing your USB device? Here's the fix, from quick checks to deep config changes. Took me years to nail this down.

Quick Fix (30 Seconds): Check the Basics

I've seen this error a hundred times. The first thing I do — and you should too — is confirm the device is actually connected and not in use by the host OS. Sounds obvious, but I've spent 20 minutes on this before realizing my phone was charging, not in file transfer mode. So:

  1. Unplug your USB device, plug it back into a different port (USB 2.0 if you have one).
  2. On the host, check if the device shows up in Device Manager (Windows) or lsusb (Linux). If it doesn't, that's a hardware or driver problem, not VirtualBox.
  3. Make sure you have the VirtualBox Extension Pack installed — this is the #1 culprit. Without it, USB 2.0 and 3.0 passthrough won't work. Download it from the VirtualBox website, matching your exact version. Install it via File > Preferences > Extensions.

If your device still isn't detected in the VM, move on. I've seen this fail even with the extension pack installed — the fix is deeper.

Moderate Fix (5 Minutes): USB Filters and Controller Settings

This is where most people get stuck. The guest OS needs to see the device, but VirtualBox's filters and controller selection aren't always right. Here's what I do:

Step 1: Create a USB Filter

  1. With the VM turned off, go to Settings > USB.
  2. Enable USB Controller. Choose USB 2.0 (OHCI+EHCI) unless you absolutely need USB 3.0 — USB 3.0 is buggy on older VirtualBox versions (pre-6.1). I stick with 2.0 for stability.
  3. Click the green plus icon (Add Filter) and select your device from the dropdown. This creates a filter that grabs the device the moment it's plugged in, even before the VM boots.
  4. If your device isn't in the dropdown, plug it in while the VM is running, then go to Devices > USB and check if it appears there. If it does, click it to attach. If it doesn't, the issue is the filter itself — delete it and try the next step.

Step 2: Disable Automatic Capture

Some host systems fight over USB devices. In VirtualBox, go to File > Preferences > USB and uncheck Enable USB Device Capture. This prevents the host from holding onto the device. I've seen this fix issues with flash drives and webcams specifically.

Still no luck? Let's get our hands dirty.

Advanced Fix (15+ Minutes): Permissions, Drivers, and Registry Hacks

This is where I've spent the most time. The error code E_FAIL (0x80004005) often means the host can't access the device's USB controller. Here's the heavy artillery:

Windows Host: Check the VirtualBox USB Helper Service

VirtualBox relies on a Windows service to handle USB. If it's not running, nothing works.

  1. Press Win + R, type services.msc, hit Enter.
  2. Find VirtualBox USB Monitor Service. Right-click and select Start (if it's stopped) or Restart.
  3. Set it to Automatic so it starts on boot. Apply and exit.
  4. Reboot your machine. I know, but this step alone fixes it for many Windows 10 and 11 users.

Linux Host: User Permissions for vboxusers

I work on Ubuntu mostly. The fix is always the same: your user account needs to be in the vboxusers group.

sudo usermod -a -G vboxusers $USER

Log out and back in. Then verify with groups. If you're still not seeing the device, check that udev rules are set up. Create or edit /etc/udev/rules.d/99-vboxusb.rules with:

SUBSYSTEM=="usb", GROUP="vboxusers", MODE="0660"

Then run sudo udevadm control --reload-rules and sudo udevadm trigger. This trick fixed my Logitech webcam passthrough on Ubuntu 22.04.

Registry Hack for Windows 10/11 (Use Caution)

If the service fix didn't work, some Windows installations have a known bug where USB controllers get disabled in the registry. I only recommend this if you're comfortable editing the registry:

  1. Open Regedit as Admin.
  2. Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VBoxUSBMon.
  3. Check the Start value. It should be 2 (Auto start). If it's 4 (Disabled), change it to 2.
  4. Reboot.

This is rare, but I've seen it on three separate machines with Windows 11 22H2 after a feature update.

When All Else Fails: The Nuclear Option

If none of the above works, here's my last-resort list:

  • Reinstall VirtualBox and the extension pack — uninstall both, reboot, install the latest version from scratch.
  • Use a USB 2.0 hub — VirtualBox's USB 3.0 support is still flaky (even in 7.0). I've used a cheap powered hub for years and it works every time.
  • Try a different guest OS — I had a USB device that worked in Ubuntu guest but not Windows 10 guest. The guest's drivers matter.
  • Check for VM USB controller conflicts — if your VM has an xHCI controller enabled, disable it in Settings > USB and switch to EHCI. This sounds counterintuitive, but xHCI can cause device timeouts.

I know this error is infuriating — trust me, I've been there. But 90% of the time, it's the extension pack missing, a stopped service, or a USB filter that's not set. Work through these steps in order, and you'll have your device detected in no time.

If you're still stuck, drop a comment with your host OS, VM guest, and the exact device. I'll help you narrow it down.

Was this solution helpful?