FIELD NOTE / 2026.09.225 MIN READ / 5 SOURCES

Warsaw Flight 2904: When Airbus Braking Logic Met a Wet Runway

Lufthansa Flight 2904 overran Warsaw's wet runway after a fast, windshear-affected landing in which the A320's ground-sensing logic delayed spoilers, reverse thrust, and effective braking.

The Warsaw accident was a chain of weather, landing, and automation effects

On 14 September 1993 Lufthansa Flight 2904, an Airbus A320-211 arriving from Frankfurt, landed at Warsaw in heavy rain and changing wind conditions, overran Runway 11, struck an embankment, and caught fire. Two people died. The official Polish investigation did not reduce the accident to one software error. It described a chain involving windshear, touchdown conditions, crew decisions, runway state, and the logic that determined when ground-only braking systems were permitted to operate.[1] That systems view is essential because the famous “computer would not let the pilots brake” summary is only part of the story.

The airplane had to decide whether it was really on the ground

On a fly-by-wire aircraft, spoilers and reverse-thrust logic may depend on air-to-ground sensing. The computer must distinguish a true landing from a transient wheel contact or bounce before enabling systems whose use in flight could be hazardous.

The crew approached fast because of reported windshear

The investigation examined weather information, approach speed, crosswind technique, and the changing wind near the runway.[1] The aircraft crossed the threshold at a relatively high speed and touched down in a bank, initially loading one main landing gear more than the other. Heavy rain and standing water also affected wheel spin-up. These conditions mattered because the A320’s braking-related logic used landing-gear compression and wheel rotation as evidence that the aircraft had transitioned from flight to ground.

Safety logic was built around assumptions about a normal touchdown

The design protected against deploying certain systems in flight. But the Warsaw landing produced an edge condition in which the aircraft was physically on the runway before the logic had accumulated the evidence it expected.

Ground spoilers and thrust reversers were delayed

The official report and its technical appendices document that the aircraft’s most effective deceleration aids did not become available immediately after the first wheel contact.[2] Because the air-to-ground conditions were not satisfied promptly, deployment of ground spoilers and reverse thrust was delayed. Wheel braking was also less effective while the aircraft was hydroplaning. The result was a long interval in which runway distance was being consumed faster than the airplane could decelerate.

The design was reliable in ordinary landings but brittle in this combination of conditions

It is tempting to call the logic simply defective, but the engineering problem is subtler. Air-to-ground interlocks exist because deploying spoilers or reversers while airborne can be dangerous. The question is whether the sensing rules covered enough abnormal landing states. After Warsaw, regulators and Airbus changed the design. FAA Airworthiness Directive 94-23-06 required modifications to main-landing-gear shock absorbers after evaluation showed that delayed air-to-ground sensing in adverse weather could prevent the airplane from achieving expected landing performance.[3]

A safety interlock can create a new hazard when its state estimate is wrong

This is a recurring automation problem. A guard condition prevents an unsafe action in one context, but if the system misclassifies the context, the same guard can block the action needed for recovery.

The accident also exposed the limits of manual override assumptions

In conventional mechanical thinking, a pilot may expect that moving a control produces the requested action. In a computer-mediated aircraft, pilot inputs are interpreted through system logic. The Warsaw report shows why designers must be explicit about when a command is merely a request subject to gating.[1] When an interface does not make that boundary visible, crews may not immediately understand why a commanded function is unavailable during a rapidly deteriorating situation.

Runway condition and touchdown point remained critical contributors

The automation logic did not create the wet runway, tailwind component, or high-energy landing. Accident archives and later summaries emphasize that the aircraft touched down long and fast in severe weather, leaving limited stopping margin.[4] Even immediate spoiler deployment would not erase the operational context. This is why responsible failure analysis resists monocausal storytelling. Software can be a contributor without being the sole cause.

Margins matter because automation is not instantaneous

A landing that consumes most available runway assumes that braking performance will arrive on schedule. When sensing, hydroplaning, or system transitions add delay, the remaining safety margin can disappear quickly.

The post-accident response changed hardware and operational understanding

Regulatory action focused on improving air-to-ground sensing, while the accident also became a widely studied example in system-safety engineering. Educational analyses use Warsaw to show that every component can meet its local requirement while the integrated system remains unsafe in an unanticipated context.[5] The case therefore influenced discussions about requirements that specify system behavior rather than only component correctness.

Why Warsaw 2904 still matters to software and automation design

Warsaw 2904 matters because it demonstrates that automation failure often lives at the boundary between physical state and software state. The aircraft was touching the runway, but the logic had not yet classified it as securely on the ground. That discrepancy delayed systems intended to help stop the airplane.[1][3]

The broader lesson applies well beyond aviation. Automated systems act on models of reality derived from sensors. If a safety-critical action depends on a state transition, engineers must ask how the model behaves during partial, noisy, or ambiguous transitions. Robust design requires more than proving that each rule is sensible under nominal conditions; it requires testing the strange moments when the physical world does not cross the software’s boundaries cleanly.

RESEARCH / PROVENANCE

Works Cited

5 SOURCES
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05

CodeHistory is a living archive. Citations document the evidence used for this edition; later evidence may refine the account.

Contribute / Corrections

Improve the record.

Use this moderated submission form to suggest a correction, provide a source, challenge a priority claim or identify a missing contributor. Submissions are treated as research leads, not automatically published comments.