2026software
macOS TCP Freeze — The 49-Day Clock
Any macOS system running continuously for 49 days, 17 hours, 2 minutes, and 47 seconds silently loses the ability to establish new TCP connections. Existing connections remain alive. Ping works. The machine appears healthy. No error is logged. The symptom — "the internet stopped working" — is functionally indistinguishable from a network outage, a misconfigured firewall, or a bad DNS resolver. Most consumer Macs never hit the threshold because OS updates force reboots. The machines that do hit it — developer workstations, Mac Minis used as servers, CI runners, studio machines, any Mac treated as infrastructure — fail silently and are almost never correctly diagnosed.
Root cause: The XNU kernel's TCP subsystem maintains an internal clock called `tcp_now` — a 32-bit unsigned integer (`uint32_t`) that increments once per millisecond since boot. The value is used throughout the TCP stack to timestamp connection state, manage retransmit timers, and determine when connections in the TIME_WAIT state are safe to reap. A `uint32_t` can hold a maximum of 4,294,967,295. Divided by 1,000 (milliseconds per second), that's 4,294,967 seconds — 49 days, 17 hours, 2 minutes, and 47 seconds. At that precise moment of uptime, `tcp_now` reaches its ceiling. A monotonicity guard in the kernel is intended to handle wraparound, but it fails: instead of allowing the counter to wrap and continue, it freezes the clock permanently at its maximum value. With the timer frozen, the kernel's TIME_WAIT garbage collector can no longer determine that any connection is old enough to be reaped. TIME_WAIT connections — which normally persist for 30 seconds and are then discarded — accumulate indefinitely. The ephemeral port range (49152–65535, roughly 16,000 ports) fills with ghost connections. Once all ports are exhausted, no new outbound TCP connection can be established. The system continues to pass ICMP (ping). It continues to serve any established long-lived connection. It simply cannot open a new socket.