Cause 1: A broken or outdated printer driver using reparse points
What's actually happening here is that Windows 10 and 11 (especially after feature updates like 22H2) can hand out a driver that's been "upgraded" to use a reparse point for its configuration files. Reparse points are filesystem tags that tell Windows "hey, this path is actually a link to somewhere else." They're normal for OneDrive folders, but they break printer drivers that weren't written to expect them.
The error 0x00000104 shows up on the print queue as STATUS_REPARSE right before the job fails. You'll see it on HP LaserJets, Brother monochrome lasers, and older Canon inkjets — the common thread is a driver that Windows Update silently replaced.
The fix is to remove that driver completely and reinstall a fresh copy from the manufacturer. Not from Windows Update — actually visit HP, Brother, or Canon's site.
1. Press Win + R, type printui /s, hit Enter.
2. Find your printer in the list.
3. Click it, then click Remove.
4. Click the Drivers tab.
5. Find the driver name (e.g., "HP LaserJet Pro M404-M405").
6. Click it, then click Remove. Choose "Remove driver and driver package."
7. Reboot.
8. Download the full driver package from the manufacturer's site.
9. Install it with the printer plugged in via USB first (if possible).
10. After install, add the network port using the printer's IP.
Don't skip the reboot. The driver removal sometimes leaves a file handle open, and if you try to reinstall without rebooting, you'll just get the same broken driver back.
Cause 2: Corrupted print spooler files
The spooler is the Windows service that holds print jobs and feeds them to the printer. When it gets corrupted — usually after a crash or a forced shutdown while a job was stuck — it can throw STATUS_REPARSE because the spooler's internal file pointers get mangled.
You'll know it's the spooler if the error appears on every printer, not just one. Or if the print queue shows the error but the printer itself works fine from another computer.
Here's the reliable fix — clearing out the spooler's cache. This is safe because the spooler rebuilds its structure from scratch.
1. Stop the spooler: net stop spooler (run as admin).
2. Delete everything in C:\Windows\System32\spool\PRINTERS.
3. Also delete C:\Windows\System32\spool\drivers\x64\3 *only if* you're sure you have driver installers.
4. Start the spooler: net start spooler.
5. Try printing again.
I've seen this fix work for a lot of people, but it's not permanent. If the spooler keeps corrupting, it's usually because the driver from Cause 1 is still writing junk into the spooler folder. So if you did Cause 1 first and still get the error, this is your next move.
One thing that catches people: you need to be an admin to delete files in the spool folder. If you get "Access denied," right-click Notepad and run as admin, then open the folder path from there.
Cause 3: Network port pointing to a dead or wrong IP (reparse on the port)
Less common but real. Some printer drivers (looking at you, HP Universal Print Driver) create a "virtual port" that's actually a reparse point pointing to a network path. If the printer's IP changes — say your router's DHCP reassigned it — the reparse point becomes stale, and Windows throws 0x00000104 because it can't resolve the target.
You'll notice this one when the error only happens on the network printer, not on a USB-connected printer. Or when the printer's IP in the queue doesn't match the actual IP on the printer's panel.
The fix is to delete the existing port and create a fresh TCP/IP port with the correct IP.
1. Open Control Panel > Devices and Printers.
2. Right-click your printer > Printer Properties.
3. Click the Ports tab.
4. Look for a port with a weird name, like "HPIP:" or "WSD-" followed by a string.
5. Uncheck "Enable bidirectional support" — sometimes that's the trigger.
6. Click Add Port > Standard TCP/IP Port.
7. Enter the printer's current IP address (check the printer's display or print a config page).
8. Finish, then set that new port as the default.
9. Print a test page.
If you're on a network with static IPs, just assign the printer a fixed IP in its network settings. That way the port never goes stale again.
Why does this fix work? Because you're replacing a reparse-point-based port with a direct TCP/IP port. Windows no longer has to chase a symlink; it just talks to the IP.
Quick-reference summary
| Cause | Symptom | Fix | Time |
|---|---|---|---|
| Broken driver using reparse points | Error on one printer, after Windows Update | Remove driver completely, install manufacturer's fresh driver | 10-15 min |
| Corrupted spooler files | Error on every printer, spooler service unstable | Clear spool\PRINTERS, restart spooler | 5 min |
| Stale network port reparse | Error only on network printer, IP mismatch | Delete port, add new TCP/IP port with correct IP | 5 min |
If none of that works, you're looking at a deeper Windows filesystem issue. Run sfc /scannow from an elevated command prompt — it checks for corrupted system files that could be messing with reparse points. That's rare, but I've seen it happen after a botched Windows update.
Remember: do them in this order. Most people skip the driver reinstall and jump straight to spooler clearing, which only masks the problem for a day or two. The driver is the root cause in at least 70% of the cases I've debugged.