# A one-millisecond bug stopped UK air traffic. Six hours.

Published: 2026-09-25

At 10:00 on Tuesday, September 8, one routine squawk-code request inside NATS's National Airspace System (NAS) is interrupted by a higher-priority message while it is part-way through updating a value. The exposure window is about one millisecond. The request resumes wrong, the flight data comes out corrupted, and by 19:30 more than 2,000 UK flights have been delayed, cancelled or diverted.

Canonical: https://thedailydiff.dev/video/2026-09-25-nats-millisecond/

## What this video covers

- 10:00: one request, interrupted inside a 1 ms window
- Timeline: 10:00 squawk → 10:02 blip → 12:45 departures stop → 13:32 link lost
- The cure: restart the whole country's flight data
- Mechanism: paused halfway through a write
- Why a safety feature stopped the sky

## Chapters

- 0:00 10:00: one request, interrupted inside a 1 ms window
- 0:32 Timeline: 10:00 squawk → 10:02 blip → 12:45 departures stop → 13:32 link lost
- 1:03 The cure: restart the whole country's flight data
- 1:22 Mechanism: paused halfway through a write
- 1:37 Why a safety feature stopped the sky
- 2:05 git blame — legacy code 50 · restart plan 30 · the 10:02 alarm 15 · 1 ms 5
- 2:24 Blast radius: 8,000 planned, 6,094 handled, third failure in three years
- 2:41 Verdict + the Monday line: atomic writes, loud alarms

## Transcript

### 10:00: one request, interrupted inside a 1 ms window

0:00 At ten in the morning, one routine request inside Britain's flight data system gets interrupted at exactly the wrong millisecond, and by evening more than two thousand flights are delayed, cancelled or diverted. That's from the preliminary report by Nats, the UK's air traffic service. No sign of an attack, and nobody pressed the wrong button. Just a legacy defect, and one very specific millisecond. How it happened, why one millisecond was enough, and who actually gets the blame. This is The Daily Diff, postmortem.

0:31 Ten o'clock. Someone asks by hand for a squawk code, the four-digit number that

### Timeline: 10:00 squawk → 10:02 blip → 12:45 departures stop → 13:32 link lost

0:36 ties a radar blip to its flight plan. The request is valid, and so is the plan. Ten oh two. The link between London Area Control and the core system drops, then comes back by itself after forty-five seconds. The ticket says recovered, stable, no operational impact. Twelve thirty-two. The link starts dropping again, faster each time, and controllers lose some automation.

0:56 By twelve forty-five, UK departures are stopped. At one thirty-two, the link drops and stays down. The cure is a controlled restart, and that's the expensive part,

### The cure: restart the whole country's flight data

1:06 because the same system feeds control centres and airports across the country. The bug lives in London's airspace. The restrictions cover the whole UK. The restart runs from a quarter past three to ten past four, and untangling the duplicate flight plans takes until ten to seven. So why was a millisecond enough?

### Mechanism: paused halfway through a write

1:23 The system juggles jobs by priority, and pausing a small job for an urgent one is normal. But this job was part-way through updating a value. The urgent message lands inside that millisecond, and the update stops halfway. When it resumes, it doesn't resume correctly. The bad data then leaks into some of the later flight updates.

### Why a safety feature stopped the sky

1:40 London tries to read one, takes too long and times out. A timeout drops the link, as designed, to protect both systems. The safety feature works perfectly. That's the problem. The report's own words. Had the urgent message arrived one millisecond earlier or later, the update would have completed normally. On Hacker News, one programmer calls a millisecond an absolute eternity,

2:02 guaranteed to happen by Tuesday this week. It was a Tuesday.

### git blame — legacy code 50 · restart plan 30 · the 10:02 alarm 15 · 1 ms 5

2:05 git blame. The legacy code, fifty percent, for an update that can be paused halfway and comes back wrong. The restart plan, thirty, because one bad record in London means restarting the whole country's flight data. The ten oh two alarm, fifteen, for healing itself and getting filed as no impact. Five percent to the millisecond, for its timing. Blast radius. Nats planned for about eight thousand flights that day and handled

### Blast radius: 8,000 planned, 6,094 handled, third failure in three years

2:27 about six thousand. UK departures stopped for about four and a half hours, and the backlog took over two days to clear. It's Britain's third air traffic failure in three years, and the chief executive calls this bug very, very obscure.

### Verdict + the Monday line: atomic writes, loud alarms

2:41 Verdict, postmortem: needs review. The report is fast and specific, and the fix is written and in testing. But the plan is a faster restart, not a smaller one. Monday line: if a job can be paused, make its write atomic, and treat an alarm that heals itself as an alarm. Send me the incident you're still not allowed to talk about, in the comments, or at thedailydiff.dev. And that's the diff for today.

3:02 I'm Niko from Axrisi. Merge responsibly.

## Sources

- [NATS, Major Incident Preliminary Investigation Report, NAS incident 08 September 2026 (report date Sep 16)](https://www.nats.aero/wp-content/uploads/2026/09/NATS-Preliminary-Investigation-Report-into-NAS-Incident-on-08-Sept-2026-Issued-16-Sept-2026.pdf) — www.nats.aero
- [NATS press release, "NATS publishes preliminary report on technical incident of 8 September" (Sep 18, 2026)](https://www.nats.aero/news/nats-publishes-preliminary-report-on-technical-incident-of-8-september/) — www.nats.aero
- [NATS on X, 8 Sep](https://x.com/NATS/status/2097313182482084317) — x.com
- [BBC, "Flight chaos caused by 'millisecond' software defect, report says"](https://www.bbc.co.uk/news/articles/cw0kl1571lpmo) — www.bbc.co.uk
- [The Guardian (Sep 18, 2026)](https://www.theguardian.com/world/2026/sep/18/flight-chaos-affecting-hundreds-of-thousands-caused-in-millisecond-by-software-error-uk) — www.theguardian.com
- [Hacker News thread on the report](https://news.ycombinator.com/item?id=49754064) — news.ycombinator.com
