STATUS_PIPE_BUSY (0XC00000AE) Fix That Actually Works
This error means a named pipe connection is blocked because the server host is busy. We'll show you the real fix—no fluff.
I know seeing 0XC00000AE pop up is frustrating—especially when you're just trying to connect to SQL Server or another app using named pipes. You've probably tried restarting, checking firewall, and Googling for hours. Let's cut through the noise.
Jump Straight to the Fix
The most common cause is simple: SQL Server's Named Pipes protocol is enabled but the SQL Browser service isn't running, or the pipe timeout is too short. Here's the fix that works in 90% of cases:
- Open SQL Server Configuration Manager (run as admin).
- Go to SQL Server Network Configuration → Protocols for [YourInstance].
- Right-click Named Pipes → Properties.
- Set Enabled to Yes (if not already).
- In the Listen On box, enter
\\.\pipe\sql\query(or your instance's pipe name). - Restart SQL Server service.
- Ensure SQL Server Browser service is running and set to Automatic start.
That's the fix. But if it's still failing, you've got a timeout issue. The default pipe timeout in SQL Server is 30 seconds—sometimes that's not enough over slow networks.
Extend Pipe Timeout via Registry
Skip this if the above worked. For stubborn cases, adjust the timeout:
reg add "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\SuperSocketNetLib" /v PipeTimeout /t REG_DWORD /d 60000 /f
Change MSSQL15.MSSQLSERVER to your SQL Server version and instance name. Then restart SQL Server.
Why Does This Happen?
The error 0XC00000AE literally means the server's named pipe is busy. Think of a named pipe like a phone line—if too many callers are trying to use it at once, or the call handling service (SQL Browser) is down, you get a busy signal. SQL Server's named pipe implementation uses a shared memory buffer, and when the buffer fills up or the listener thread is blocked, new connections get turned away.
In my help desk days, I saw this most often when someone was running an ODBC connection test from a remote machine across a VPN with packet loss. The pipe would hold connections open longer than expected, and clients would pile up waiting.
Less Common Variations
Sometimes the error crops up outside SQL Server. Here are three other scenarios I've fixed:
1. Windows Remoting via WinRM
If you see 0XC00000AE when running winrm commands, the WinRM service might be overwhelmed. Increase the MaxConnections setting:
winrm set winrm/config/Service @{MaxConcurrentOperations="4294967295"}
2. IIS Application Pool Bottleneck
I once debugged this on a web server running an ASP.NET app that used named pipes to communicate with a local service. The fix was to increase the MaxWorkerThreads in the machine.config or set a higher queueLimit on the named pipe server.
3. Anti-Virus Interference
This one tripped me up the first time: some AV software hooks into named pipe creation. If you recently installed an AV update, try disabling it temporarily to test. McAfee and Symantec are the worst offenders.
How to Prevent It From Coming Back
Prevention is about capacity planning. On SQL Server, monitor the sys.dm_os_wait_stats view for PIPE_WAIT waits. If you see high wait times, your pipe is overworked. Consider switching to TCP/IP (port 1433) for remote connections—it handles load better.
Also, set a reasonable remote query timeout on the client side (I use 60 seconds) so hung connections don't pile up.
Finally, keep SQL Server Browser running. I can't tell you how many times I've seen people disable it to "save resources" only to break named pipe resolution. It's a tiny service—leave it on.
"The named pipe error is almost never a network problem. It's a configuration or capacity problem. Start with the simple fixes." — What I tell every junior admin.
Hope this saves you a headache. If you're still stuck, check the Windows Application event log for SQL Server's error code 2 (pipe not found) vs 0XC00000AE (pipe busy)—they're different issues requiring different fixes.
Was this solution helpful?