Reset the Print Spooler Service: Open Command Prompt as Administrator
👇 See all 2 solutions below
What is Error 1904?
Windows System Error Code 1904, known as ERROR_ALREADY_WAITING, is a RPC & Network error that occurs during Remote Procedure Call (RPC) and network communication. The error indicates that: The specified printer handle is already being waited on. When this error is encountered, the Windows operating system was unable to complete the requested operation within the network services subsystem. The error code 1904 is returned by the GetLastError() function and provides developers with a specific identifier to diagnose the root cause of the failure. The symbolic name ERROR_ALREADY_WAITING maps directly to this numeric code and is commonly referenced in Microsoft documentation, developer forums, and system logs. Understanding this error and its context within Remote Procedure Call (RPC) and network communication is essential for effective troubleshooting.
Common Causes
- Print Spooler service is hung or crashed
- Corrupted print jobs stuck in the queue
- Incompatible or outdated printer drivers
The Ultimate Guide to Understanding and Fixing the Blue Screen of Death (BSOD) in Windows 11 & 10
A comprehensive, expert-level encyclopedia on diagnosing, analyzing memory dumps, and permanently resolving Blue Screen of Death (BSOD) errors in Windows.
Read the full guide →Step-by-Step Solutions
- Open Command Prompt as Administrator
- Run: net stop spooler
- Run: del /f /q C:\Windows\System32\spool\PRINTERS\*
- Run: net start spooler
- This clears the print queue and restarts the printing service
Video Tutorials
Diagnostic Command
Run this PowerShell command to find related events in your system log:
Get-EventLog -LogName System -Newest 20 | Where-Object {$_.Message -like "*1904*" -or $_.Message -like "*ERROR_ALREADY_WAITING*"} | Format-List
💡 Open PowerShell as Administrator, paste the command above, and press Enter.
Prevention Tips
- Keep printer drivers updated from the manufacturer's website
- Clear the print queue if a job gets stuck instead of sending more jobs