USB Enumeration Failure

USB Controller Descriptor Enumeration Failure Fixed

Hardware – RAM & MB Intermediate 👁 10 views 📅 Jun 17, 2026

USB devices fail to enumerate when the controller can't read descriptors. Most often it's a power issue or driver corruption. Here's how to fix it.

1. Power Delivery Failure — The Real Culprit

What's actually happening here is the USB host controller sends a GET_DESCRIPTOR request to the device, and the device either doesn't respond or returns garbage. The most common reason: the port can't deliver enough power for the device to initialize its internal circuitry.

Here's the trigger: you plug in an external hard drive, a USB 3.0 hub with multiple devices, or a power-hungry DAC. Windows shows "Device Descriptor Request Failed" (Code 43) in Device Manager. The device is dead—until you unplug it and reconnect to a different port.

Fix it:

  1. Open Device Manager (Win + X → Device Manager).
  2. Expand Universal Serial Bus controllers.
  3. Right-click each USB Root Hub (xHCI or eHCI depending on your system). Select Properties → Power Management.
  4. Uncheck Allow the computer to turn off this device to save power.
  5. Repeat for every Root Hub entry. Yes, all of them.

The reason step 4 works: Windows can selectively suspend a USB port to save battery, but it does so aggressively. When the port is in a low-power state and a new device connects, the controller may not provide enough inrush current to enumerate properly. Disabling selective suspend forces the port to stay fully powered. On desktop machines, this is almost never needed and only causes trouble.

If you're on a laptop, also check the power plan: go to Control Panel → Power Options → Change plan settings → Change advanced power settings → USB settings → USB selective suspend setting. Set it to Disabled. This is the nuclear option—but it fixes the enumeration failure 60% of the time.

2. Corrupted or Missing Generic USB Hub Driver

The second cause is subtler. The USB controller relies on a generic driver stack. If the usbhub3.sys or usbhub.sys driver gets corrupted by a bad Windows Update or a driver installation that replaced the Microsoft-provided one, enumeration fails at the descriptor stage.

You'll see the device in Device Manager with a yellow exclamation mark, and the error reads "Windows has stopped this device because it has reported problems. (Code 43)" or "A request for the USB device descriptor failed."

Fix it:

  1. Open Device Manager.
  2. Right-click the problematic device (usually listed under Universal Serial Bus controllers as Unknown USB Device (Device Descriptor Request Failed)).
  3. Select Uninstall device. Check Delete the driver software for this device if prompted.
  4. Now go to View → Show hidden devices in Device Manager.
  5. Under Universal Serial Bus controllers, uninstall every entry that says Generic USB Hub or USB Root Hub. Do not uninstall the Host Controller—just the hubs.
  6. Restart the computer. Windows will reinstall the generic drivers automatically.

The reason step 5 matters: third-party hub drivers (like those from Intel or ASMedia) often override the Microsoft generic driver. When they break, they take the entire USB stack down. By removing all hub entries, you force Windows to reload the known-good generic driver from its driver store. After the restart, plug the device back in—it should enumerate cleanly.

3. USB Selective Suspend Interfering with Enumeration Timing

This cause overlaps with #1 but deserves its own section because the fix is different. Windows uses a feature called USB selective suspend to power down individual ports when they're idle. The problem: the timing of the power-down/-up handshake can collide with the descriptor request.

You'll see this on systems with USB 3.0 controllers from Renesas or ASMedia. When you plug a device into a port that was previously suspended, the controller resumes the port, sends GET_DESCRIPTOR, but the device hasn't finished powering up its internal regulator. Result: descriptor failure.

Fix it via registry (for advanced users):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USB\Parameters]
"DisableSelectiveSuspend"=dword:00000001

Save that as disable_usb_suspend.reg, double-click it, confirm the merge, and restart. This disables selective suspend system-wide, bypassing any power plan settings. It's aggressive—your USB ports will never sleep—but it eliminates the timing race.

If you don't want to go registry-level, the power plan toggle from fix #1 works too, but some chipsets ignore that setting. The registry entry forces the issue at the driver level.

Quick-Reference Summary Table

CauseSymptomFixDifficulty
Port power savingDevice works on one port, fails on another; Code 43Disable USB selective suspend in power planBeginner
Corrupted hub driver"Device Descriptor Request Failed" with yellow bangUninstall all Generic USB Hubs, rebootIntermediate
Timing race with selective suspendDevice fails only when plugged into a previously idle portRegistry key to disable suspend globallyIntermediate

One more thing: if none of these work, the controller itself might be failing. Try the device on a different machine. If it works there, consider a motherboard BIOS update—manufacturers often ship broken USB 3.0 firmware that gets fixed later. That's rare, but I've seen it on ASRock Z370 boards.

Was this solution helpful?