640 TB/year and a $38.64 Receipt: What the Codex Bug Really Costs
A developer named Rui Fan left Codex running for 21 days. At the end of those three weeks, his SSD had written 37 terabytes of data — just from SQLite logging.
Let me repeat that. 37 terabytes. In 21 days. From logs.
Extrapolated, that’s about 640 TB per year. On a 1 TB consumer SSD rated for 600 TBW (terabytes written), you’d burn through the entire warranted lifespan in under twelve months. (The Register, GitHub Issue #28224)
Another developer in the thread ran the numbers on his own machine. Codex analyzed the disk usage and told him: this bug cost $38.64 in lost SSD value on a Samsung 990 2 TB NVMe. The issue’s economic assessment — generated by Codex itself, which is darkly funny — estimates low single-digit millions of dollars in SSD endurance burned across the userbase during the March–June window. At $0.13 per TB written.
That’s not a bug. That’s a slow hardware fire.
Counterargument one: this is open source, the community found it, and the fix shipped fast.
True. Three PRs merged already. One stops logging every Responses WebSocket event. Another filters noisy targets from persistent logs. A third stops persisting bridged log events entirely. Combined, they eliminate ~85% of the writes. The dev who found it also published a one-liner SQLite trigger workaround. That’s open-source engineering at its best — transparent, fixable, accountable.
But here’s the thing: Codex CLI was announced in December 2024. The excessive logging has been reported for months. Multiple earlier threads flagged the same behavior. The issue sat until someone did the math publicly and it went viral. OpenAI confirmed engineers are working on it — but only after the Register article landed.
The velocity of the fix after visibility tells you everything. The velocity of the fix before visibility tells you the rest.
Counterargument two: logging is essential for debugging. You can’t improve a product without telemetry.
Also true. Telemetry is how you find out what’s breaking. But there’s a difference between gathering diagnostic data and treating your user’s SSD like a firehose target. Logging every single Responses WebSocket event — which is what was happening — isn’t telemetry. It’s a SELECT * INTO disk with no WHERE clause.
The logs lived in a SQLite database that ballooned to 1.2 GB with 500K retained rows — and 5.5 billion allocated row IDs. That’s not diagnostic data. That’s data diarrhea. The difference between engineering and carelessness is asking “how much data do I actually need?” before you start writing.
Counterargument three: this is growing pains. AI coding agents are new, and rough edges get sanded down.
Sure. And that’s the most dangerous framing of all. “Growing pains” is what we call it when someone else pays for our mistakes. The user paid the SSD cost. The user paid the performance tax. The user’s hardware got younger while OpenAI got free debugging data. If Codex had been a SaaS product, OpenAI would have noticed the AWS bill on day one and fixed it in a week. Because it runs on local hardware, the cost was invisible — until one user checked his SMART stats and did fifth-grade arithmetic.
That’s not a growing pain. That’s an externality. And it’s a pattern: when you ship software that runs on someone else’s machine, the cost of sloppiness gets socialized onto the user. Every wasted CPU cycle, every unnecessary write, every background thread that shouldn’t exist — it shows up on their electric bill, their SSD health, their fan noise. Not yours.
The fix is landing. The damage is done. What bothers me isn’t the bug — bugs happen. What bothers me is that nobody at OpenAI noticed 37 TB of writes to a single customer’s drive. Nobody saw the pattern in the telemetry they were already collecting and said “wait, this number is insane.”
If your AI coding agent can write better code than you, that’s impressive. If it can also write your hardware’s obituary in 11 months, that’s a failure of craftsmanship.
Codex taught itself to estimate the cost of its own bug. That’s clever. Now it needs to learn not to create the bill in the first place.
Sources: The Register, GitHub Issue #28224, Thomas Claburn reporting.