macOS ⚙ Software Bug May 2026 9 min read
Alin Marin — CEO Radical Service
Alin Marin CEO Radical Service

Over 12 years of experience in Apple repairs · 25,000+ devices repaired · ASE Bucharest

The macOS 49-day bug — why your Mac loses the net after 7 weeks

On 9 April 2026, Photon published a technical report on a classic 32-bit overflow bug in the macOS Tahoe kernel: after 49 days, 17 hours, 2 minutes and 47 seconds of continuous uptime, the Mac can no longer establish new TCP connections. The browser hangs, email fails, but ping keeps working. Apple hasn't commented. Full technical article — what the bug is, who it affects, how to check and how to fix.

The macOS 49-day bug — TCP timestamp overflow in XNU kernel
49 days, 17h
exact uptime threshold
2³²
milliseconds — uint32 limit
macOS 26
Tahoe — confirmed version
Reboot
instant fix — free

Reassuring: no data loss, no physical damage

The bug is exclusively at the networking stack level — the kernel no longer expires old TCP connections, so it can't open some new ones. The hardware is fine, files are OK, no data loss. A reboot resets the counter and everything returns to normal. This article walks you through diagnostics and prevention.

What happened — in brief

On 9 April 2026, the Photon team (a company building a framework for software agents connected to messaging platforms) published a detailed report: "We Found a Ticking Time Bomb in macOS TCP Networking". They discovered the bug on their own iMessage monitoring servers and reproduced it on 2 other machines. Tracing the issue led to a single line of code in the XNU kernel — the comparison that decides when a TCP connection in TIME_WAIT state can be closed.

#1

Public discovery: 9 April 2026, by Photon

Photon — a company building a framework for software agents connected to messaging platforms — observed the bug on its own iMessage monitoring fleet and reproduced it on 2 other machines. They traced it to a single comparison in the XNU (macOS kernel) source code.

#2

Exact threshold: 49 days, 17 hours, 2 minutes, 47 seconds

After that much continuous uptime, a 32-bit kernel counter overflows and "freezes" the TCP timestamp internal clock. It's exactly 2³² milliseconds (4,294,967,295 ms ≈ 49.71 days) — the mathematical limit of an unsigned 32-bit int. A classic overflow bug.

#3

Symptoms: TCP fails, ping works

Past the threshold, connections in TIME_WAIT state never expire, ephemeral ports get exhausted one by one, and the Mac can no longer establish any new TCP connection. Browsing, email, SSH, iCloud sync — all fail. ICMP (ping) keeps working, so a quick check says "the net is up".

#4

Apple hasn't confirmed (yet)

No official statement, no public feedback ID, the fix doesn't appear in macOS 26.4.1 (released April 2026). The community is waiting on a fix in 26.5 — unconfirmed. Adam Engst (TidBITS) found no discussion on Apple Developer Forums.

The technical mechanism — what the overflow does

The XNU kernel (used by macOS, iOS and watchOS, but TCP implementation differs on Mac) keeps an internal timestamp counter for each TCP connection — used to decide when a connection in TIME_WAIT state can be "forgotten" and resources freed. The counter is stored as an unsigned 32-bit integer, in milliseconds since system startup.

The math: 2³² milliseconds = 4,294,967,296 ms ÷ 1000 = 4,294,967 seconds ÷ 86,400 (sec/day) ≈ 49.71 days. At that exact moment (49 days, 17 hours, 2 minutes, 47 seconds), the counter wraps to 0. The cleanup logic that says "if old connection timestamp + 60 seconds < current time, close the connection" becomes permanently false — because current time (reset to 0) is always less than the old timestamp.

The consequence: old TIME_WAIT connections are never cleaned up. Each new connection opened occupies an ephemeral port from the pool (49152–65535 on macOS = ~16,000 available). Within days on an active system, the pool empties. The Mac runs out of ephemeral ports → any new TCP connection fails. The browser sees "connection refused" or timeout, even though Wi-Fi shows connected and ping to google.com works perfectly.

Technical stats — summary

Uptime trigger 49 days, 17h, 2m, 47s
Technical cause uint32 overflow in XNU kernel
Underlying math 2³² ms ≈ 4.29 billion milliseconds
Confirmed versions macOS 26 (Tahoe) — possibly Catalina too
What breaks New TCP connections (TIME_WAIT doesn't expire)
What keeps working ICMP / ping
Immediate fix Reboot — counter resets
Official Apple fix Expected in macOS 26.5 (unconfirmed)

Who is actually affected

The 49-day threshold seems big but is feasible for specific user categories. Here's who should be careful and who can ignore the bug without worry:

#1

Mac servers that don't reboot

The most exposed category. Mac mini or Mac Studio configured as file server, build server, media server — running for months without pause. Uptime over 49 days here is the norm, not the exception.

#2

Mac mini as AI bench / inference server

Recent trend: Mac mini with 64GB unified RAM used for running local AI models (Ollama, LM Studio). Left running for days with active sessions. Definitely affected.

#3

Dev workstations on long projects

Programmers who don't shut down the Mac for weeks because they have complex dev environments (multi-tab, IDEs, simulators, Docker containers). A reboot means hours of re-setup. Many prefer to leave it on.

#4

Regular users: NOT practically affected

On a regular MacBook, security updates land every 3–6 weeks and force a reboot. Plus laptops sleep daily — sleep doesn't accumulate uptime at the same rate. Hitting the 49-day threshold is very hard.

How to check and how to fix — 5 steps

The process is trivial — Terminal, one command, optionally a reboot. Under 5 minutes total.

1

Open Terminal

Spotlight (Cmd+Space) → type "Terminal" → Enter. Or Applications → Utilities → Terminal.

2

Type the uptime command and press Enter

Exact command: uptime. You'll see something like "16:42 up 23 days, 5:14, 3 users, load average...". The "days" number is how long the Mac has been running since the last reboot.

3

Compare with the 49-day threshold

Under 30 days — totally safe. Between 30–45 days — pay attention, schedule a reboot. Between 45–49 days — urgent reboot. Over 49 days — you probably already have symptoms (browser not loading, apps failing on connection, even though ping works).

4

Full reboot (not just logout/sleep)

Apple menu → Restart. DO NOT use "Sleep" or "Logout" — the kernel counter stays active. Only a full reboot or shutdown + start resets the TCP timestamp counter.

5

For Mac servers — schedule monthly reboots

If you use the Mac as a permanent server, set an automatic monthly reboot (under 30-day interval). This can be done with launchd / cron or via Energy Saver → Schedule. That eliminates the risk regardless of whether Apple ships the fix.

Historical context — this bug isn't new in computing

The 32-bit counter overflow at ~49.7 days is a whole class of bugs that has affected operating systems and network equipment for decades. Apple isn't the first victim — and probably not the last.

1

Windows 95

Almost identical bug — 32-bit uptime counter, crash at ~49.7 days. Microsoft publicly acknowledged and patched it in 1999. It became a meme among sysadmins.

2

VAX/VMS (Digital Equipment, 1980s)

32-bit counter but in tens of milliseconds — overflow at ~497 days. Rarer because no one kept a VAX running that long without maintenance.

3

Cisco IOS (certain versions)

Similar uptime overflow bug affecting production routers. Scheduled 24-day reboots became standard practice in many data centres.

Lesson for Apple: the bug could have been prevented with a 64-bit counter (~584 million year limit — practically infinite) or with explicit wrap-around logic. The fact that a modern OS still uses uint32 for time counters is a surprising choice in 2026.

Heads-up: if reboot does NOT fix it, it's a different problem

If you rebooted and the Mac still has issues — or, worse, your M2/M3 MacBook won't turn on at all after a macOS Tahoe update — this is not the 49-day bug. You may be affected by the Tahoe Bricked Fix bug, completely different, that bricks the logic board of M2 and M3 MacBooks after the macOS 26.4 / 26.4.1 update. DFU Revive fails, Apple Configurator returns errors 4013/4014. This bug does NOT fix with a reboot — it needs firmware-level service intervention. We repair it in 24h, keep the original board and your data. Read the full guide here.

The 49-day bug — free fix (reboot), purely educational article.
The Tahoe Bricked bug (M2/M3 MacBook dead after update) — our technical article, 24h repair.
Other post-update issues — free diagnostic, call us at +40 739 795 800.

Frequently asked questions

How do I know for sure if I have the 49-day bug or something else?
Simple test: open Terminal and run "uptime". If the day count is under 49 and you still have network issues, it's NOT this bug — look elsewhere (Wi-Fi, DNS, VPN, firewall). If uptime is over 49 days and you have the classic symptom ("ping works but browser won't load"), a reboot confirms the diagnosis: if after rebooting everything returns to normal, it was exactly this bug.
Does sleep count as uptime?
Yes, but less aggressively. The internal counter keeps advancing during sleep, but not at the same rate as in active use. Practically, if your MacBook sleeps 8 hours a night, hitting the 49-day threshold can take 70–100 real calendar days. For certainty — check "uptime" in Terminal.
Did macOS 26.4.1 fix the bug?
No. The 26.4.1 update from April 2026 fixed other issues (iCloud sync) but not the 49-day bug. The tech community (TidBITS, Six Colors) confirmed the issue remains. Apple is expected to ship the fix in macOS 26.5 — no official confirmation.
Are older macOS versions affected?
Engst (TidBITS) believes the bug was introduced in macOS 26 (Tahoe). Michael Tsai on his blog suggests it might exist since macOS 10.15 Catalina, but no one has practically confirmed on older versions. If you're on macOS Sonoma, Sequoia or older with uptime over 49 days and no issues — you're fine.
Can I do anything preventive besides reboot?
Not really. The bug is in the kernel — the only way to reset the counter without rebooting would be a kext directly manipulating kernel memory, which Apple blocks for security reasons. Practical solution: scheduled 30-day reboot for any Mac kept constantly on.
What does Radical Service do in this case?
For this bug NO service is needed — it's a trivial soft fix (reboot). This article is purely educational so you can diagnose yourself. BUT: if the reboot doesn't resolve your symptoms, the issue is something else and we come into play. Free diagnostic. Especially if your M2 or M3 MacBook abruptly stopped powering on after a macOS Tahoe update — that's the Tahoe Bricked bug, completely different, that we repair at firmware level.
Does this bug affect iPhone, iPad or Apple Watch too?
No — it's macOS-specific, in the XNU kernel used on Mac. iOS, iPadOS and watchOS use different variants of the kernel and have different uptime mechanisms (plus mobile devices auto-restart on OTA updates much more often). No public reports of similar bugs on iPhone/iPad/Watch.
Is there any real risk (data loss, hardware damage)?
None. The bug is exclusively at the networking layer — the Mac runs normally, files are OK, hardware is unaffected. The only effect: you can't open new TCP connections. Browser, email, sync — fail. Reboot resolves with no losses.

Sources

Useful resources

Diagnostic & Repair

Reboot doesn't fix it? Come in for diagnostic.

If you restarted and the Mac still behaves strangely — or if it's the Tahoe Bricked bug that bricks M2/M3 MacBooks, the issue needs service intervention. Free diagnostic, no pressure. Call us, we'll figure it out together. English-speaking technicians.