0X00000016

0X00000016: Device rejects your command — what that really means

This Windows error fires when a device driver sends a command the hardware can't understand. Often shows up with USB drives, scanners, or old parallel port gear.

You plug in a USB flash drive, a scanner, or an old parallel-port printer. Windows plays the connection sound, the device shows up in Device Manager, but when you try to read a file or scan a page, you get ERROR_BAD_COMMAND (0X00000016). The exact message: The device does not recognize the command. This isn't a hardware failure — the device is alive and talking. It's just that the command your software sent makes no sense to it.

What's actually happening here

Every device speaks a protocol. USB mass storage devices use SCSI command sets. Scanners use TWAIN or WIA. Parallel-port printers use IEEE 1284. When you send a command that doesn't match what the device expects — for example, a SCSI READ command to a device that only understands vendor-specific control requests — the device returns 0X00000016.

The most common trigger: an outdated or wrong driver. The driver thinks the device supports something it doesn't, or the driver itself is from a different hardware revision. I've also seen this with USB hubs that renegotiate speed mid-operation (especially USB 3.0 hubs with older USB 2.0 devices). And yes, sometimes it's just a bad cable that drops a byte, turning a valid command into garbage.

The fix

  1. Uninstall the current driver completely. Open Device Manager, find your device (look under Universal Serial Bus controllers for USB devices, or Imaging devices for scanners). Right-click it, choose Uninstall device, and check the box that says “Delete the driver software for this device.” This is key — leaving old driver files behind is why half the fixes don't work.
  2. Reboot without the device plugged in. This clears any cached driver state in the registry. Windows will re-detect the device on next boot if it's connected, so you need to keep it unplugged.
  3. Unplug the device, then plug it back in. Windows will install the default Microsoft driver. For most USB mass storage devices, the built-in driver is the right one. For scanners, you'll get the basic WIA driver — test with Windows Fax and Scan. If it works, the problem was the old driver.
  4. If the default driver doesn't fix it, get the correct driver directly from the manufacturer. Not from Windows Update, not from a generic driver pack. Go to the vendor's support page, find your exact model, and download the driver for your exact Windows version (Windows 10 22H2, Windows 11 23H2, etc.). Drivers from Windows 7 or 8.1 often lack the command tables needed for newer builds.
  5. For USB devices, try a different port. Specifically, avoid USB 3.0 (blue) ports for old devices — use a USB 2.0 (black) port instead. The older controller chipset talks a slightly different command set, and USB 3.0 hosts sometimes translate commands incorrectly.
  6. Check the cable. Swap it out. A frayed cable can induce bit errors. The device sees a command with a wrong checksum and returns 0X00000016. This is rare but easy to test.

If it still fails

You're dealing with a device that's beyond the driver's ability to fix. Some old parallel-port scanners and printers simply don't have compatible drivers for modern Windows. The manufacturer never updated the firmware, and the command set is too old. Your options:

  • Virtualize an older OS (Windows XP SP3 in VirtualBox) and pass the USB or LPT device through. The old driver will work inside the VM because the hardware sees the same commands it always did.
  • Use a dedicated USB-to-LPT adapter with its own firmware — but I've found these are hit or miss. The StarTech ICUSB1284 has worked for me; the cheap no-name ones usually don't.
  • Accept that the device is now a paperweight. Sometimes the honest answer is that it's time to replace the hardware. Not every problem has a software fix.

A note on scanners: If your scanner works for a few scans then throws 0X00000016 mid-scan, that's a power issue. The scanner is drawing more current than the USB port can supply. Use a powered USB hub. The command fails because the voltage drops below the threshold during the scan head's movement, corrupting the command packet.

Bottom line: 0X00000016 is almost always a command mismatch. The device and the driver aren't speaking the same dialect. Uninstall the driver properly, get the right one from the manufacturer, and use the correct port. That'll fix 95% of cases.

Related Errors in Windows Errors
0X00300100 Fix PLA_S_PROPERTY_IGNORED (0X00300100) Error 0XC00D1330 Fix NS_E_CURLHELPER_NOTRELATIVE (0XC00D1330) URL Error 0X00000597 Fix ERROR_HOOK_NOT_INSTALLED (0x00000597) – Hook Not Installed 0XC00D32CA NS_E_PROPERTY_NOT_FOUND (0XC00D32CA): Fixed in 5 Minutes

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.