Architecture
Ariane 5, thirty years on
The most expensive integer overflow in history is now three decades old. Its lesson was never about the cast.
Code, Noted1 min readArchitecture
Thirty years ago this past June, the first Ariane 5 veered off course thirty-seven seconds after launch and self-destructed, taking four satellites with it. The proximate cause fits in a sentence: a 64-bit float stuffed into a 16-bit integer, in guidance code inherited from Ariane 4.

The famous version of the lesson is about integer casts. The inquiry board's actual finding was better, and it has aged into one of the discipline's permanent truths: the code was correct. Correct for Ariane 4, whose flight profile kept the value in range. The failure was reuse without revalidation, a component carried into a context whose assumptions nobody re-checked, running a routine that was not even needed after liftoff.
Every estate now does this daily at scales the inquiry board never imagined: libraries, containers, models and services inherited into contexts their authors never tested, each one correct somewhere else. The rocket's question survives unchanged. Not "is this component good", but "was it validated for here"; the two questions differ by exactly one exploded launch vehicle, and by most of the reuse incidents in your own postmortem archive.
Thirty years, and the industry still learns it one context at a time.