Fix ERROR_PIPE_NOT_CONNECTED (0X000000E9) on Windows
This error pops up when a program tries to talk to another process over a pipe, but nothing's listening. Usually happens with print spoolers or SQL Server.
You're working on a small business network, and one of their Windows 10 boxes suddenly stops printing. Or maybe a line-of-business app throws up "ERROR_PIPE_NOT_CONNECTED" with code 0X000000E9. I've seen this most often with the print spooler after a bad driver update — a client last month had their entire office unable to print because a Brother driver corrupted the spooler. Another common trigger is SQL Server when it's configured to use named pipes instead of TCP/IP, and the service restarts without the pipe listener.
What actually causes 0X000000E9
A pipe is just a connection between two processes — think of it like a phone line. One process (the server) picks up and waits for calls. Another process (the client) dials in. 0X000000E9 means the client dialed, but nobody answered. The server process either crashed, never started, or was restarted while the client still held the old connection.
In the print spooler case, a third-party driver or filter can crash the spooler service. When a print job arrives, the spooler tries to talk to the driver over a named pipe, but the driver has bailed. SQL Server can trigger it if you're connecting via np:servername and the SQL Server Browser service isn't running — that service advertises the pipe endpoint.
Step-by-step fix
Skip the registry spelunking — start with the obvious stuff that works 90% of the time.
- Restart the service that owns the pipe. For printer errors, open Services.msc, find Print Spooler, right-click and click Restart. For SQL Server, restart SQL Server (MSSQLSERVER) and also SQL Server Browser if it's stopped. This is the quick fix that often clears a transient crash.
- Clear the print queue if the spooler was the culprit. After restarting the spooler, open a command prompt as admin and run:
This deletes stuck print jobs that can re-trigger the error.net stop spooler del /Q /F %systemroot%\System32\spool\PRINTERS\* net start spooler - Check for corrupt print drivers. Go to Devices and Printers, right-click your printer, choose Printer Properties, then the Advanced tab. Click New Driver and install a fresh driver from the manufacturer's site. I've seen generic HP UPD drivers cause this — use the exact model driver instead.
- For SQL Server: force TCP/IP instead of named pipes. Open SQL Server Configuration Manager, expand SQL Server Network Configuration, select Protocols for MSSQLSERVER. Right-click Named Pipes and choose Disable. Then right-click TCP/IP and enable it. Restart SQL Server. Your connection string changes from
np:servernametotcp:servername,1433. - Check third-party software interference. Antivirus or VPN software can intercept named pipes. Temporarily disable any security software and test. I had a case where Malwarebytes was blocking spooler pipes — adding an exception fixed it.
What to check if it still fails
If the error persists after those steps, dig into the Event Viewer. Look under Windows Logs > System for events around the time of the error. Filter by source PrintService or MSSQLSERVER. You'll often see a prior error event that explains what killed the pipe's server side — like a driver crash with ID 0x0000007E.
Also run pipelist from Sysinternals to see active named pipes on the system. If the pipe name your app expects isn't listed, that confirms the server process isn't listening. Then you know it's a service startup issue, not a client-side bug.
For SQL Server specifically, try connecting with sqlcmd -S tcp:servername,1433 — if that works but named pipes don't, leave TCP/IP as your default. I've told clients to just stop using named pipes entirely; they're rarely needed and cause more problems than they solve.
Was this solution helpful?