What happened
At 1 a.m. Pacific time on March 20, 2023, OpenAI introduced a change to ChatGPT's servers that caused a spike in Redis request cancellations. OpenAI uses Redis to cache user information so it does not have to query its database for every request, and its Python servers talk to the cache through the redis-py library, which recycles connections across requests.
With Asyncio, a request canceled after it is queued but before its response arrives corrupts the connection; the next unrelated request can then receive data left behind in it. In some cases the returned data matched what the requester expected, so one user saw another active user's chat history titles — and, in a nine-hour window, some ChatGPT Plus subscribers could see another user's name, email, payment address, card type, expiration date and the last four digits of a card. Full card numbers were never exposed.
OpenAI took ChatGPT offline, patched the bug in redis-py, added redundant per-request data checks, improved logging and notified affected users. It estimated the exposed billing information touched 1.2% of ChatGPT Plus subscribers who were active during that window, and said the number of users whose data was actually revealed to someone else was extremely low.
What it cost
ChatGPT was taken offline; payment-related information of 1.2% of active ChatGPT Plus subscribers was exposed during a nine-hour window — full card numbers were not.
Why it happened
A shared connection pool assumed canceled requests could not corrupt later responses — the redis-py race condition.
The March 20 change spiked cancellations, turning a rare bug into a realistic exposure.
ChatGPT's cache held personal and payment data, so a cache bug became a privacy incident.
Nothing on the cache path validated that the returned data belonged to the requesting user before serving it.
The lesson
When pooled cache connections serve multiple users, every response must be validated against the requester — and a change that spikes cancellations is a potential isolation breach, not just an outage.
Aftermath
OpenAI restored chat history within days (minus a few hours) and the Redis maintainers shipped a patch. The incident drew immediate regulatory attention: on March 31, Italy's Garante temporarily banned ChatGPT, citing the March 20 data breach among other concerns, and OpenAI disabled the service in Italy while facing a possible fine of up to €20 million or 4% of global turnover. The case became a reference point for how fast an AI service's caching layer can turn a scaling problem into a data-protection crisis.
FOLLOW THE EVIDENCE
The sources
- March 20 ChatGPT outage: Here's what happened web.archive.org
- A bug revealed ChatGPT users' chat history, personal and billing data helpnetsecurity.com
- Italy curbs ChatGPT, starts probe over privacy concerns tech.yahoo.com