I know this error is infuriating — one minute your PC boots fine, the next it throws 0X00000287 and your hard drive or external SSD becomes a paperweight. Let's get it fixed.
The fix that works 90% of the time: reinstall the driver
Open Device Manager (Win + X → Device Manager). Look for any device with a yellow triangle — usually under Disk drives or Storage controllers. Right-click it, select Uninstall device, and check the box that says Delete the driver software for this device. Don't worry, this isn't permanent.
Then restart your PC. Windows will re-detect the hardware and reinstall the driver automatically. That's it — in many cases, the error vanishes.
Still stuck? Then you need to grab the correct driver from the manufacturer's site. For example, if you're using a Samsung 970 EVO Plus on an AMD X570 board, go to Samsung's site and download the latest NVMe driver. Install it manually, then reboot.
One real-world scenario: I saw this on a Dell XPS 15 after a Windows 11 23H2 update. The built-in NVMe driver got corrupted. Reinstalling it from Dell's support page fixed it in five minutes.
Why this works
The error code literally means the driver's initialization call failed. Windows loads the driver, but the driver can't talk to the hardware. That happens for a few reasons:
- A botched update corrupted the driver file.
- The driver is old and incompatible with a recent Windows patch.
- A registry entry points to the wrong driver version.
Reinstalling the driver forces Windows to write fresh files and re-register the driver in the registry. The old, broken entry gets replaced. Think of it as a soft reset for your hardware's software brain.
Less common variations — when the simple fix isn't enough
1. The driver is fine, but the device is disabled
Sometimes Windows disables a device after a failed initialization. Open Device Manager, find the device, right-click and select Enable device. Then reboot.
2. Registry corruption
If the reinstall didn't work, the registry might have a stale entry. Press Win + R, type regedit, and navigate to:
HKLM\SYSTEM\CurrentControlSet\Services\[driver name]
Find the Start value. Set it to 2 (auto start) or 3 (manual) depending on the device type. For a hard drive, you usually want 2. Backup the key before editing — right-click, Export. A wrong value here can cause boot loops, so be careful.
3. Third-party driver conflicts
If you've installed a storage driver from your motherboard vendor (like AMD SATA or Intel RST), it can clash with the Windows inbox driver. Uninstall the third-party one, reboot, and see if the error clears. I've seen this on ASUS boards specifically — their storage drivers are occasionally buggy with certain SSDs.
4. Check for firmware updates
For NVMe drives, a firmware bug can trigger this error. Head to the drive manufacturer's site (Crucial, Western Digital, Samsung) and run their firmware update tool. This isn't the most common fix, but it's saved me twice.
Prevention — keep it from coming back
Three habits that stop this error from ever showing up:
- Don't skip Windows updates. They're annoying, but they often contain driver fixes for known issues.
- Only install drivers from manufacturer sites. Windows Update is okay for basic stuff, but for storage controllers, go to the source.
- Use System Restore before major changes. If you're about to update a driver or install new hardware, create a restore point first. It takes two minutes and gives you a clean exit ramp.
And if you're using an external drive that triggers this error, check the USB cable too. A flaky cable can cause the driver to fail initialization — that's a dumb fix but a real one. I replaced a cable once and the error disappeared.
That's it. Start with the reinstall, move to the registry if needed, and you'll have your drive back before lunch.