Ariane flight V88 was the failed
maiden flight
The maiden flight, also known as first flight, of an aircraft is the first occasion on which it leaves the ground under its own power. The same term is also used for the first launch of rockets.
In the early days of aviation it could be dange ...
of the
Arianespace
Arianespace SA is a French company founded in March 1980 as the world's first commercial launch service provider. It operates two launch vehicles: Vega C, a Small-lift launch vehicle, small-lift rocket, and Ariane 6, a Medium-lift launch vehicl ...
Ariane 5
Ariane 5 is a retired European heavy-lift space launch vehicle operated by Arianespace for the European Space Agency (ESA). It was launched from the Guiana Space Centre (CSG) in French Guiana. It was used to deliver payloads into geostationar ...
rocket, vehicle no. 501, on 4 June 1996. It carried the Cluster spacecraft, a constellation of four
European Space Agency
The European Space Agency (ESA) is a 23-member International organization, international organization devoted to space exploration. With its headquarters in Paris and a staff of around 2,547 people globally as of 2023, ESA was founded in 1975 ...
research satellites.
The launch ended in failure due to multiple errors in the software design:
dead code
The term dead code has multiple definitions. Some use the term to refer to code (i.e. instructions in memory) which can never be executed at run-time.
In some areas of computer programming, dead code is a section in the source code of a program whi ...
, intended only for
Ariane 4
The Ariane 4 was a European expendable rocket, expendable launch vehicle in the Ariane (rocket family), Ariane family, developed by the (CNES), the Government of France, French space agency, for the European Space Agency (ESA). The manufacturi ...
, with inadequate protection against
integer overflow
In computer programming, an integer overflow occurs when an arithmetic operation on integers attempts to create a numeric value that is outside of the range that can be represented with a given number of digits – either higher than the maximu ...
led to an
exception handled inappropriately, halting the whole otherwise unaffected
inertial navigation system
An inertial navigation system (INS; also inertial guidance system, inertial instrument) is a navigation device that uses motion sensors (accelerometers), rotation sensors (gyroscopes) and a computer to continuously calculate by dead reckoning th ...
. This caused the rocket to veer off its flight path 37 seconds after launch, beginning to disintegrate under high aerodynamic forces, and finally self-destructing via its automated
flight termination system. The failure has become known as one of the most infamous and expensive
software bug
A software bug is a design defect ( bug) in computer software. A computer program with many or serious bugs may be described as ''buggy''.
The effects of a software bug range from minor (such as a misspelled word in the user interface) to sev ...
s in history. The failure resulted in a loss of more than US$370 million.
Launch failure

The Ariane 5
reused the code from the
inertial reference platform from the
Ariane 4
The Ariane 4 was a European expendable rocket, expendable launch vehicle in the Ariane (rocket family), Ariane family, developed by the (CNES), the Government of France, French space agency, for the European Space Agency (ESA). The manufacturi ...
, but the early part of the Ariane 5's flight path differed from the Ariane 4 in having higher horizontal velocity values. This caused an internal value BH (Horizontal Bias) calculated in the alignment function to be unexpectedly high. The alignment function was operative for approximately 40 seconds of flight, which was based on a requirement of Ariane 4, but served no purpose after lift-off on the Ariane 5.
[ The greater values of BH caused a data conversion from a ]64-bit
In computer architecture, 64-bit integers, memory addresses, or other data units are those that are 64 bits wide. Also, 64-bit central processing units (CPU) and arithmetic logic units (ALU) are those that are based on processor registers, a ...
floating point
In computing, floating-point arithmetic (FP) is arithmetic on subsets of real numbers formed by a ''significand'' (a signed sequence of a fixed number of digits in some base) multiplied by an integer power of that base.
Numbers of this form ...
number to a 16-bit
16-bit microcomputers are microcomputers that use 16-bit microprocessors.
A 16-bit register can store 216 different values. The range of integer values that can be stored in 16 bits depends on the integer representation used. With the two ...
signed integer
An integer is the number zero (0), a positive natural number (1, 2, 3, ...), or the negation of a positive natural number (−1, −2, −3, ...). The negations or additive inverses of the positive natural numbers are referred to as negative in ...
value to overflow and cause a hardware exception. The programmers had protected only four out of seven critical variables against overflow to keep within a required maximum workload target of 80% for the on-board Inertial Reference System computer, and relied on assumptions which were correct for the trajectory of Ariane 4, but not Ariane 5, regarding the possible range of values for the three unprotected variables. The exception halted both of the inertial reference system modules, although they were intended to be redundant. The active module presented a diagnostic bit pattern to the On-Board Computer which was interpreted as flight data, in particular causing full nozzle deflections of the solid boosters and the Vulcain main engine. This led to an angle of attack of more than 20 degrees, causing separation of the boosters from the main stage, the triggering of the self-destruct system of the launcher, and the destruction of the flight.[
The official report on the crash (conducted by an inquiry board headed by Jacques-Louis Lions) noted that "An underlying theme in the development of Ariane 5 is the bias towards the mitigation of random failure. The supplier of the ]inertial navigation system
An inertial navigation system (INS; also inertial guidance system, inertial instrument) is a navigation device that uses motion sensors (accelerometers), rotation sensors (gyroscopes) and a computer to continuously calculate by dead reckoning th ...
(SRI) was only following the specification given to it, which stipulated that in the event of any detected exception the processor was to be stopped. The exception which occurred was not due to random failure but a design error. The exception was detected, but inappropriately handled because the view had been taken that software should be considered correct until it is shown to be at fault. ..Although the failure was due to a systematic software design error, mechanisms can be introduced to mitigate this type of problem. For example the computers within the SRIs could have continued to provide their best estimates of the required attitude
Attitude or Attitude may refer to:
Philosophy and psychology
* Attitude (psychology), a disposition or state of mind
** Attitude change
* Propositional attitude, a mental state held towards a proposition
Science and technology
* Orientation ...
information. There is reason for concern that a software exception should be allowed, or even required, to cause a processor to halt while handling mission-critical equipment. Indeed, the loss of a proper software function is hazardous because the same software runs in both SRI units. In the case of Ariane 501, this resulted in the switch-off of two still healthy critical units of equipment."
Other issues identified in the report focused on testing:[
* The purpose of the review process, which involves all major partners in the Ariane 5 programme, is to validate design decisions and to obtain flight qualification. In this process, the limitations of the alignment software were not fully analysed and the possible implications of allowing it to continue to function during flight were not realised.
* The specification of the inertial reference system and the tests performed at equipment level did not specifically include the Ariane 5 trajectory data. Consequently, the realignment function was not tested under simulated Ariane 5 flight conditions, and the design error was not discovered.
* It would have been technically feasible to include almost the entire inertial reference system in the overall system simulations which were performed. For a number of reasons it was decided to use the simulated output of the inertial reference system, not the real system or its detailed simulation. Had the system been included, the failure could have been detected. Post-flight simulations have been carried out on a computer with software of the inertial reference system and with a simulated environment, including the actual trajectory data from the Ariane 501 flight. These simulations have faithfully reproduced the chain of events leading to the failure of the inertial reference systems.
Another perspective of the failure, based on ]systems engineering
Systems engineering is an interdisciplinary field of engineering and engineering management that focuses on how to design, integrate, and manage complex systems over their Enterprise life cycle, life cycles. At its core, systems engineering uti ...
, focuses on requirements:
* The ranges of variables such as horizontal velocity and the quantity BH computed from it should have been explicitly quantified. Instead, a 16-bit range was assumed.
* The alignment task should have been deactivated at an appropriate moment. Instead, the alignment task was running after lift-off.
* A failure model of the inertial reference platforms should have been analyzed to ensure that service would be continuously delivered throughout the flight, rather than assuming that at most one module would fail. Instead, both modules failed, and rather than killing the flight gracefully, output diagnostic messages were interpreted as flight data.
Payload
Cluster consisted of four cylindrical, spin-stabilised spacecraft, powered by 224 watt solar cells. The spacecraft were to have flown in a tetrahedral
In geometry, a tetrahedron (: tetrahedra or tetrahedrons), also known as a triangular pyramid, is a polyhedron composed of four triangular Face (geometry), faces, six straight Edge (geometry), edges, and four vertex (geometry), vertices. The tet ...
formation, and were intended to conduct research into the Earth's magnetosphere
In astronomy and planetary science, a magnetosphere is a region of space surrounding an astronomical object in which charged particles are affected by that object's magnetic field. It is created by a celestial body with an active interior Dynamo ...
. The satellites would have been placed into highly elliptical orbits; , inclined at 90 degrees to the equator.
Aftermath
Following the failure, four replacement Cluster II satellites were built. These were launched in pairs aboard Soyuz-U
Soyuz-U ( GRAU index: 11A511U) was a Soviet and later Russian expendable medium-lift launch vehicle designed by the TsSKB design bureau and constructed at the Progress factory in Samara, Russia. The ''U'' designation stands for ''unified' ...
/Fregat
Fregat () is an upper stage developed by NPO Lavochkin for universal compatibility with a wide range of medium- and heavy-lift launch vehicles. Fregat has been used primarily with Soyuz and Zenit rockets, and entered operational service in ...
rockets in 2000.
The launch failure brought the high risks associated with complex computing systems to the attention of the general public, politicians, and executives, resulting in increased support for research on ensuring the reliability of safety-critical system
A safety-critical system or life-critical system is a system whose failure or malfunction may result in one (or more) of the following outcomes:
* death or serious injury to people
* loss or severe damage to equipment/property
* environmental h ...
s. The subsequent automated analysis of the Ariane code
In communications and information processing, code is a system of rules to convert information—such as a letter, word, sound, image, or gesture—into another form, sometimes shortened or secret, for communication through a communicati ...
(written in Ada) was the first example of large-scale static code analysis
In computer science, static program analysis (also known as static analysis or static simulation) is the analysis of computer programs performed without executing them, in contrast with dynamic program analysis, which is performed on programs duri ...
by abstract interpretation
In computer science, abstract interpretation is a theory of sound approximation of the semantics of computer programs, based on monotonic functions over ordered sets, especially lattices. It can be viewed as a partial execution of a computer pro ...
.
The failure also harmed the excellent success record of the European Space Agency's rocket family, set by the high success rate of the Ariane 4 model. It was not until 2007 that Ariane 5 launches were recognised as being as reliable as those of the predecessor model.
See also
* Mars Climate Orbiter
The ''Mars Climate Orbiter'' (formerly the Mars Surveyor '98 Orbiter) was a robotic space probe launched by NASA on December 11, 1998, to study the Martian climate, Martian atmosphere, and surface changes and to act as the communications rel ...
software that had been adapted from an earlier Mars Climate Orbiter was not adequately tested before launch
* Apollo guidance computer – PGNCS trouble, another case where a spacecraft guidance computer suffered from having a subsystem inappropriately left running
* List of software bugs
Many software bugs are merely annoying or inconvenient, but some can have extremely serious consequences—either financially or as a threat to human well-being. The following is a list of software bugs with significant consequences.
Administ ...
References
Further reading
*
External links
* Jacques-Louis Lions et al.
Ariane 501 Inquiry Board report
()
*
direct link to video file
— Footage of the final seconds of the rocket flight.
Wired – History's Worst Software Bugs
— An article about the top 10 software bugs. The Ariane 5 Flight 501 software glitch is mentioned as one of these bugs.
*
— A good article (in German) where the actual code in question is given.
{{Ariane
1996 in spaceflight
Ada (programming language)
Satellite launch failures
Software bugs
V88, Ariane flight