DHL 737 crashes short of Vilnius runway
On the 25th of November 2024, a Boeing 737-400 crashed on final approach to Vilnius airport with one fatality.
The 31-year-old cargo aircraft, registered in Spain as EC-MFE, was operated by Swiftair on behalf of the German logistics group DHL for a routine cargo flight from Leipzig, Germany, to Vilnius, Lithuania. There were four crew onboard, two of whom were likely to have been in the jumpseats for repositioning. The flight departed normally from Leipzig Halle Airport at 02:08 UTC (03:08 local), operating as flight QY5690/BCS18D.
Vilnius International Airport serves the capital of Lithuania, located just 5.9 km south of the city centre. The airport has a single north-south asphalt runway (01/19) of 2,515 metres (8,250 feet). The runway elevation is 646 feet above mean sea level.
At 03:20, as the aircraft began its approach, the METAR (METAR EYVI 250320Z 18017KT 9999 OVC008 01/M01 Q1020 TEMPO OVC005) showed the weather at Vilnius as good visibility and wind straight down the runway, with low clouds, fully overcast at 800 feet with an expectation of dropping to 500 feet. With a temperature of 1°C and a dew point of -1°C, the likelihood of serious structural icing on approach was low. Vilnius has not been reporting the GPS jamming and spoofing that many of the Baltic airports are suffering from. On the 25th of November, over 98% of all aircraft flying through the area reported good navigation accuracy , as well as the days before and after.
At 03:28 UTC, ninety minutes into the flight and on final approach to Vilnius, the aircraft crashed near Liepkalnis Hill. One pilot was killed in the crash, the other three suffered serious injuries. Rescue services said that some of the debris struck a house with 13 people inside, all of whom were safely evacuated.
During the initial approach, they arrived at the waypoint WIZOP travelling at about 300 knots ground speed, quite a bit over the chart maximum of 230 knots. They made a 90° turn to intercept the localiser but, not surprisingly at that speed, the aircraft overshot before getting back on track.
Radar returns showed that the aircraft was still slightly off of the runway centreline and based on ADS-B data shows the aircraft low on the approach: at about 875 feet above mean sea level before the sudden descent, so 225 feet above the runway elevation despite still being a few kilometres from the runway.
The final three positions show:
03:28:03Z – Straight and level
03:28:04Z – Beginning of right bank
03:28:05Z – Last position
As the aircraft was flying low over a populated area close to the airport, there are also a number of videos that show the final moments of the flight. Please note that you may need to click through to the Fear of Landing website to view the videos.
The following is a dashcam video from a nearby vehicle, which was published by Simple Flying.
And we have another angle from the security camera of a house near the crash site:
A leading police official spoke to the media directly after the crash.
The plane was landing, but it fell a few kilometres before the airport, skidded for several hundred metres, its wreckage caught in a residential building.
The head of police did little to narrow things down, saying the crash was “most likely either a technical accident or it could be a human error.”
DHL have reported suspicious fires at their Leipzig warehouse caused by incendiary devices hidden inside packages, leading the German press to speculate that there may have been a bomb onboard the aircraft. However, there is no sign in the videos of any explosion before impact and there is nothing about the sequence of events that hints at sabotage.
Although there is still no official statement as to the cause of the crash, the ATC audio from LIveATC shows that there was some confusion in the cockpit.
Here is my transcription of the ATC interactions. I don’t normally spell everything out to make for easier reading, but in this case, as we are looking at errors within the conversation, I have been more faithful to the exact words used and the identifiers are left in each call.
You can listen along with VASAviation.
SwiftAir DHL flight 18D: Good morning control, Postman one eight delta
Vilnius Approach: Postman 18D, good morning! Descend to altitude 4,000 feet. QNH one zero two zero, ILS approach runway one nine, information Uniform.
This is a quick pass through all the important details that the flight crew need. Cleared to descend to 4,000 feet, the current barometric pressure is 1020, expect the ILS approach for runway 19, and the current identifier for the most recent airport information is Uniform, to ensure that the pilots have the latest version.
SwiftAir DHL flight 18D: 4,000 feet, QNH one zero one niner, expecting ILS runway one niner. Could you please confirm expecting ILS and not confirmed for the ILS?
This call has a clearly the wrong QNH readback of 1019 instead of 1020, which means that their altitude will be out by about thirty feet. The follow-up question is completely valid, as the controller didn’t use a verb. It may have distracted the controller from correcting the pressure.
(Note the use of “niner” for nine is standard aviation, to differentiate nine from five)
Vilnius Approach: One niner [unintelligible].
Confirming runway 19, I guess, but disregarding the QNH readback and doesn’t actually clarify whether they are cleared or not. As you can see above, I immediately assumed she meant “to expect” as opposed to cleared for.
SwiftAir DHL flight 18D: Control, could you please confirm–from one eight delta–if we are authorised to the ILS after [waypoint] MIZOP?
The identifier in the middle of the call is a bit odd but the question is clear: are we cleared for the ILS approach or not?
Vilnius Approach: To one eight delta, descend thousand feet to two thousand, seven hundred feet. QNH one zero two zero, cleared ILS-Zulu one nine, report established.
This now clarifies the situation: The flight is cleared to 2,700 feet on the QNH 1020 and cleared for the ILS approach Zulu for runway 19 and they should report back to ATC when they are established on the ILS.
SwiftAir DHL flight 18D: OK, two thousand five hundred feet with QNH one zero two zero and we are cleared for the ILS, we’ll report established. Postman one eight zero–one eight delta, correction.
The readback of the barometric pressure is correct this time but now the altitude is incorrect: 2,500 instead of 2,700 feet. On top of that, the pilot flubs the call sign, which is not really meaningful in itself but the consistent small mistakes could be a sign of fatigue.
[Other traffic, both inbound and outbound]
Vilnius Approach: One eight delta: four miles from touchdown, contact Tower one one eight two zero five.
So the correct way to give the tower frequency (118.205) would be to clearly state the fullstop which makes the whole thing easier to follow: One one eight decimal two zero five.
SwiftAir DHL flight 18D: One one eight zero five, Postman one eight delta.
And sure enough, the pilot gets it wrong, reading back 118.05
[Other traffic]
Vilnius Tower: Postman one eight delta, Tower.
The flight crew has not switched to the Tower frequency, likely they are on 118.05 instead. The Tower controller is calling to them as he should have heard by now.
There is no response.
Vilnius Approach: One eight delta, Vilnius Approach.
When a flight stops communicating, it is sensible to check the last frequency that they were on, in case they are still there. Also, if a pilot realises they are on the wrong frequency, a quick fix can be to switch back, so that you are at least talking to someone, even if it is the wrong someone.
There is only silence.
Vilnius Tower: Postman one eight delta: wind 170 degrees one five knots, cleared to land runway one niner.
Tower has still not heard from the aircraft but it is still clearly visible on radar on approach. The Tower controller clears them to land in the hopes that they are listening.
Meanwhile, inside the cockpit, they may have realised they are on the wrong frequency or at least be wondering why they are not yet cleared to land.
Vilnius Approach: [unintelligible] one eight delta: cleared to land one nine.
The aircraft is still descending towards the runway but has not acknowledged either controller. Just as the approach controller finishes her call, the aircraft drops and crashes into the ground.
Vilnius Tower: Cancel your start-up. Go back to your stand number. We just got a crash of aircraft on final so we will need some time.
This wasn’t the most unstabilised approach but it certainly would have increased the crew’s workload. Between the high speed, the low approach and the wrong frequency, and presumably the realisation that they had still not received their clearance to land, the situation in the cockpit may have been stressed.
The following video takes video footage which was posted by Lithuanian press and slows it right down.
This slower version shows more clearly that the aircraft pitched up followed by a wing drop shortly before the impact.
According to a press release from the Prosecutor General’s Office of Lithuania, they will be leading the investigation along with the Lithuanian Criminal Police Bureau. Over thirty parties have already been questioned in the pre-trial investigation, which is being carried out under Article 278(2) (“Improper Maintenance or Repair of Vehicles or Their Equipment”) and Article 279 (“Violation of International Flight Rules”) of the Criminal Code.
A parallel investigation by the Lithuanian Transport Accident and Incident Investigation Division has confirmed that the undamaged black boxes have been retrieved and sent to Germany for analysis.
The German Federal Bureau of Aircraft Accident Investigation has confirmed that they will be assisting the ICAO investigation.
The Spanish CIAIAC will be an accredited party as the state of registry of the aircraft and the operator. The US, representing the state of design and manufacture of the aircraft, have sent a team of investigators from the NTSB, Boeing and the FAA to assist with the investigation. According to the head of the Lithuanian Transport Accident and Incident Investigation Division, this is the first time that Lithuanian authorities have been confronted with such a situation.
An accident of this magnitude is probably the first in the history of independent Lithuania.
The Spanish pilot who survived the crash has been identified as the Pilot Flying and has been transferred to Spain for further treatment, at the request of his family. Initial reports were that he was severely injured in the crash. It is believed that the Spanish pilot who was killed on impact was the Pilot Monitoring whose voice is heard on the ATC recordings. There has been no update on the German and Lithuanian pilots who were also in the aircraft, though one early report claims that the German pilot was effectively unharmed but said he could not shed any light on the cause of the crash.
An unsourced update to Aviation Herald claims that conversations with the crew did not indicate any concerns inside the aircraft, there was “no smoke or chaos”.
An observant poster on PPRuNe spotted this potential bit of information tucked at the end of a Guardian article about a fire at a DHL facility in Birmingham on Tuesday.
On Monday, the Lithuanian prosecutor general’s office said its inquiries into the crash were continuing, but that it had no evidence to classify the case as anything other than “improper maintenance or repair”.
The wreckage of the aircraft was recovered last week once the crash site was no longer protected as evidence.
The multi-national team of investigators now face the challenge of establishing how an experienced crew on a standard cargo route came to crash just short of the runway. With black box analysis underway and witness interviews continuing, their conclusions are likely still months away.
I hope they’ll take a hard look at the go-around culture at DHL.