You'll see 0XC00000CE (STATUS_TOO_MANY_SESSIONS) mid-flow, not at boot. A terminal server hits it when the 40th user tries to open a mapped drive. A backup job throws it after scanning a few thousand files on a NAS. Someone's custom socket client logs it once the outbound connection count crosses 16,000. The app freezes or exits with a cryptic "The network session limit was exceeded" popup, and Windows Event Viewer has nothing useful beyond a generic redirector warning.
It's not a BIOS error, despite people pasting it into BIOS forums because the hex code looks like a firmware fault. 0XC00000CE is an NTSTATUS value — STATUS_TOO_MANY_SESSIONS — returned by the kernel when a network resource hits its configured ceiling.
What's actually happening
Windows tracks network sessions in three places, and any one of them running out produces this exact code.
- SMB sessions — the Redirector keeps a table of active client connections to remote shares. Each
net useor UNC path consumes one. - Server-side sessions — a machine acting as a file or print server caps concurrent inbound sessions at 20 by default on client SKUs, or a configurable number on Server SKUs.
- Ephemeral ports — every outbound TCP connection grabs a port from the dynamic range. Default on Windows Server 2008 and later is 16,384 ports (49152–65535). Burn through them and new
connect()calls fail with STATUS_TOO_MANY_SESSIONS or WSAEADDRINUSE.
The reason step 3 in the fix below works is that it decouples "how many connections are open right now" from "how many ports we've reserved." Windows holds a used ephemeral port in TIME_WAIT for 240 seconds by default after close. If your app opens and closes thousands of short-lived connections, you churn the port pool faster than it refills. Raising the port range and cutting TIME_WAIT is the surgical fix.
Classic triggers: a misconfigured antivirus scanning every SMB write, a line-of-business app that opens a new SQL connection per query instead of pooling, or a load test against a .NET service that never disposes HttpClient.
The fix
- Find the offender before you change anything. Open an elevated command prompt and run:
If TIME_WAIT is over 8,000, you've got port churn. Cross-reference PIDs with Task Manager. The process with hundreds of ESTABLISHED or TIME_WAIT entries is your culprit — fix that app's connection lifecycle before touching the registry.netstat -ano | find /c "ESTABLISHED" netstat -ano | find "TIME_WAIT" | find /c /v "" - Check session counts on a file server. Run:
Each line is an inbound session. If it's pegged at the limit, one client is opening sessions without closing them. Kill stale ones withnet sessionnet session \\clientname /delete. - Expand the ephemeral port range. In
regedit, go to:
Add two DWORD values:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Reboot. That gives you the full 16K port pool and drops TIME_WAIT from 240s to 30s.MaxUserPort = 65534 (decimal) TcpTimedWaitDelay = 30 (decimal) - Raise the server session cap if this box is the file server. Same registry path doesn't hold this one — it lives under the LanmanServer service:
Add a DWORD calledHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\ParametersMaxMpxCtwith a value of 2048 (decimal). Reboot the server. - Fix the client. If you control the app, enable connection pooling, reuse
HttpClientas a static singleton in .NET, and close SMB handles explicitly. The registry changes buy you headroom, they don't fix a leak.
If it still fails
Boot into Safe Mode and reproduce. If it works there, third-party software — usually endpoint protection or a VPN client miniport — is intercepting and pinning connections. Uninstall it and retest.
Also check HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters for any Group Policy-pushed MaxCmds or MaxMpxCt override. Domain GPOs love to reset these values on the next gpupdate, undoing your manual edit silently.
If you're on Windows Server 2003 or XP, stop — those OSes use a 5,000-port default range and TIME_WAIT of 240s with no easy fix. Upgrade. Every hour you spend tuning a 20-year-old TCP stack is an hour wasted.
If Event ID 2011 or 2012 shows up in the System log alongside 0XC00000CE, it's not ports — it's the SMB session cap on the server. Go straight to step 4.