For about ten years, I flew every week. One of the first things you learn when you live out of a suitcase is that your flight isn’t really yours. It’s one link in a chain of aircraft and crews moving around the world, and when something breaks somewhere else in that chain, you feel it.
I connected through Atlanta a lot in those years. More than once, I’d land there partway through a multi-leg trip and find out my next flight wasn’t going anywhere. It was almost always a flight late in the day, and often it started with winter weather somewhere else on the network. Early flights tend to get delayed. Late flights get cancelled, because by then every delay from earlier has piled up and there’s no room left to absorb another one. The crew had used up the hours they were legally allowed to work, and there was nobody else to fly it. Sometimes the airline put me in a hotel. Other times I slept in the airport.
So on Friday (Nov 13) afternoon, when the FAA stopped every flight departure in the United States because of a communications failure in its air traffic control network, I recognised the complaints that followed almost immediately. Within hours I was seeing people in Canada complaining that their flights were being affected by what they saw as a US problem.
Then, a little over four hours later, the ground stop was lifted, and a second wave of complaints arrived. It was over, so why were tomorrow’s flights still being cancelled?
Both questions come from the same place. We tend to picture an air travel system as a collection of separate flights, each one independent, except it isn’t. It’s one big, interconnected, flow system, and when you block part of a flow system, the effects don’t stay where the blockage was.
Start with Canada. Canadian air traffic control was fine; domestic flights within Canada were largely unaffected. Flights to and from the US obviously weren’t going anywhere, and neither were flights that needed to cross US airspace. Departures from Europe to the US were suspended too. The aircraft that was supposed to fly your Toronto to Calgary route that evening, might well have been sitting in Chicago.
The second question is the more interesting one. Why didn’t everything return to normal once the stop was lifted?
Because lifting the blockage doesn’t remove the backlog. Thousands of flights didn’t happen, and the people, planes and crews that were supposed to be on them are now in the wrong cities.
- Crews time out. This is the one that kept stranding me in Atlanta. A crew that spent four hours waiting on the ground may not be legally allowed to continue flying the trip they were scheduled for, even once the system opens up again.
- Airports restrict night flights. Most airports limit night operations to keep the noise down, some far more tightly than others. Toronto Pearson caps how many flights it allows between 12:30am and 6:29am, so a flight that would have landed at 11pm can’t always land at 2am instead.
- Aircraft are out of position. The plane that was supposed to fly your 7am departure tomorrow was meant to arrive tonight. If it never left, there’s nothing for you to board in the morning.
By the end of Friday night, many crews and planes were out of position. Over the course of Saturday, more than 6,400 flights were cancelled, well past the FAA’s own estimate of 4,000 to 5,000. American Airlines said it was prioritising flights to non-hub cities and international routes in order to “position aircraft and crew where they are needed to help restore our operation.” The FAA didn’t expect the schedule to be back to normal until the end of Sunday, two days after a four-hour blockage.
I lived a version of this in August 2016, when Delta’s systems went down worldwide one morning and I spent more than eight hours in the Toronto airport waiting to check in. Delta lifted its ground stop around 8:40 that morning, and I was still waiting to check in hours after that. The cancellations carried on for days.
How long that tail lasts depends mostly on how much slack the system has to catch up with, and airlines don’t carry much. In a typical month, more than 80% of seats on US flights are filled, and the planes and crews are scheduled to keep flying, not to sit around waiting for a bad day. That’s efficient when nothing goes wrong. When something does, there’s nowhere to put the backlog, because a system with no slack can’t absorb variation. This ground stop also hit on a Friday, one of the busiest days of the week, when there was even less room than usual.
None of this is unique to airlines. I see exactly the same pattern with software teams.
A team is blocked waiting on another group, maybe a security review, maybe an environment that’s down, maybe a key person who’s away for a week. While they wait, people don’t sit still. They start other work. Then the blocker clears and everyone expects things to snap back to where they were. They don’t. The people who would have picked up that work are now in the middle of something else, the same way the crews are in the wrong city. Everything that was waiting now arrives at once, and code review, testing, and deployment get hit with a wave of work they weren’t staffed for. The cost of the blocker wasn’t the week it was blocked. It’s the week, plus however long it takes the system to drain.
So when someone asks “how long were we blocked?”, that’s the wrong question. The better question is “how long until we’re back to normal?” The answer to that one is almost always longer, and it’s the one that actually matters to the people waiting on you.
Clearing the blockage is where recovery starts, not where it ends.