Tenerife 1977 vs Cloudflare 2025: How One Ambiguous Change Can Kill 583 People… or Take Down the Internet

On March 27, 1977, two Boeing 747s collided on the runway in Tenerife, killing 583 people. The cause? An ambiguous radio transmission that was interpreted differently by the pilot and air traffic control.

Ambiguity Kills at Scale

Tenerife: "We Are Now at Takeoff"

The KLM captain radioed: "We are now at takeoff."

Did that mean:

  • "We are currently taking off" (in progress)?
  • "We are at the takeoff position" (waiting)?

Air traffic control interpreted it as the latter. The captain meant the former. 583 people died.

Aviation's Solution: Standard Phraseology

After Tenerife, aviation made ambiguous communication impossible. Every phase of flight has exact, unambiguous phrases:

  • "Cleared for takeoff" (not "at takeoff")
  • "Holding short" (not "waiting")
  • "Ready for departure" (not "ready to go")

These aren't suggestions. They're requirements. Violating them is a safety violation.

Cloud's Non-Solution: "Best Practices"

Cloud providers publish "best practices" for safe config propagation. But they're optional. The control plane still accepts ambiguous states. The deployment pipeline still allows implicit assumptions.

When those assumptions break — and they always do — we get global cascading outages.

The Pattern Is Identical

Tenerife taught us: In safety-critical systems, ambiguity kills.

Cloud providers in 2025: Still operating with ambiguous state machines, implicit contracts, and "usually works" assumptions.

Aviation fixed this in 1977. We're still debugging the same class of failure 48 years later.

The KLM captain radioed: 'We are now at takeoff.' Air traffic control interpreted it as waiting. The captain meant in progress. 583 people died.

The technology to make ambiguous states impossible exists. We choose not to use it.

← Back to all articles