0XC00000CE

0XC00000CE: STATUS_TOO_MANY_SESSIONS Session Limit Fix

0XC00000CE is STATUS_TOO_MANY_SESSIONS — Windows ran out of network sessions, usually from a busted app or port exhaustion. Here's the real fix.

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 use or 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

  1. Find the offender before you change anything. Open an elevated command prompt and run:
    netstat -ano | find /c "ESTABLISHED"
    netstat -ano | find "TIME_WAIT" | find /c /v ""
    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.
  2. Check session counts on a file server. Run:
    net session
    Each line is an inbound session. If it's pegged at the limit, one client is opening sessions without closing them. Kill stale ones with net session \\clientname /delete.
  3. Expand the ephemeral port range. In regedit, go to:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    Add two DWORD values:
    MaxUserPort = 65534 (decimal)
    TcpTimedWaitDelay = 30 (decimal)
    Reboot. That gives you the full 16K port pool and drops TIME_WAIT from 240s to 30s.
  4. 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:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
    Add a DWORD called MaxMpxCt with a value of 2048 (decimal). Reboot the server.
  5. Fix the client. If you control the app, enable connection pooling, reuse HttpClient as 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.
Related Errors in Network & Connectivity
0X00002584 Fix DNS Error 0X00002584: Zone Configuration Invalid 0X000013C7 Cluster Network Stuck in 'Already Online' — 0X000013C7 Fix 0X00002737 WSAEDESTADDRREQ 0X00002737: Missing socket address fix 0X00000037 Fix ERROR_DEV_NOT_EXIST (0X00000037) Network Resource Gone

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.