2000便以上が欠航したイギリスの航空管制問題は7400km離れた地点を同一扱いしたソフトのバグ
2023年8月末にイギリスでは大規模な航空管制障害が発生し、2000便以上のフライトが欠航しました。数十万人に影響を与え、1億ポンド(約184億円)以上の損害が出たとみられるこの問題の原因は、当初は「フランスの管制ミスの可能性」などと報じられていましたが、実際には航空管制ソフトウェアにおいて、4000海里(約7400km)離れた2つの地点(ウェイポイント)の識別子が重複していたことが理由だったことがわかりました。
https://www.bloomberg.com/news/articles/2023-09-06/uk-air-traffic-software-misread-two-spots-on-map-causing-outage
UK air traffic control meltdown
https://jameshaydon.github.io/nats-fail/
ヨーロッパの航空会社は、フライトプランをヨーロッパ全体の航空管制を行っているユーロコントロールの統合初期フライトプラン処理システム(IFPS)に送信します。
IFPSに受理されたフライトプランの情報は、管制に必要なすべての航空管制サービスプロバイダー(ANSP)に送られます。
IFPSが送るデータは、国際民間航空機関(ICAO)が定める「ICAO4444」という形式。しかし、イギリスの国内の管制を司る全国航空管制サービス(NATS)ではヨーロッパのフライトプラン仕様である「ADEXP」形式で扱うため、スワンウィック航空管制センターの「FPRSA-R」というシステムで変換が行われます。
問題が発生した2023年8月28日に、IFPSに以下のような内容のフライトプランが送信されました。ぱっと見てわかる書き方ではありませんが、ルートや全体速度、全体高度、ウェイポイントの情報などが含まれています。
(FPL-TTT123-IS
-C550/L-SDE1E2GHIJ3J5RWZ/SB1D1
-KPWM1225
-N0440F310 SSOXS5 SSOXS DCT BUZRD
DCT SEY DCT HTO J174 ORF J121
CHS EESNT LUNNI1
-KJAX0214 KMCO
-PBN/A1L1B1C1D1O1T1 NAV/Z1 GBAS
DAT/1FANS2PDC SUR/260B RSP180
DOF/220501 REG/N123A SEL/BPAM
CODE/A05ED7)
ADEXP形式に変換すると以下のようになるとのこと。
-TITLE IFPL
-BEGIN ADDR
-FAC LIIRZEZX
[...]
-FAC LYZZEBXX
-END ADDR
-ADEP EDDF
-ADES LGTS
-ARCID KIM1
-ARCTYP B738
-CEQPT SDGRWY
-EOBD 170729
-EOBT 0715
-FILTIM 280832
-IFPLID AT00441635
-ORIGIN -NETWORKTYPE SITA -FAC FRAOXLH
-SEQPT C
-WKTRC M
-PBN B2
-REG DABHM
-SEL KMGJ
-SRC FPL
-TTLEET 0210
-RFL F330
-SPEED N0417
-FLTRUL I
-FLTTYP S
-ROUTE N0417F330 ANEKI8L ANEKI Y163 NATOR UN850 TRA UP131 RESIA Q333
BABAG UN606 PEVAL DCT PETAK UL607 PINDO UM603 EDASI
-ALTRNT1 LBSF
-BEGIN RTEPTS
-PT -PTID EDDF -FL F004 -ETO 170729073000
-PT -PTID RID -FL F100 -ETO 170729073404
-PT -PTID ANEKI -FL F210 -ETO 170729073856
-PT -PTID NEKLO -FL F214 -ETO 170729073911
-PT -PTID BADLI -FL F248 -ETO 170729074118
-PT -PTID PABLA -FL F279 -ETO 170729074348
-PT -PTID HERBI -FL F308 -ETO 170729074624
-PT -PTID NATOR -FL F330 -ETO 170729074911
-PT -PTID TITIX -FL F330 -ETO 170729075154
-PT -PTID TRA -FL F330 -ETO 170729075323
-PT -PTID ARGAX -FL F330 -ETO 170729080055
-PT -PTID RESIA -FL F330 -ETO 170729080731
-PT -PTID UNTAD -FL F330 -ETO 170729081243
-PT -PTID DIKEM -FL F330 -ETO 170729081627
-PT -PTID ROKIB -FL F330 -ETO 170729081824
-PT -PTID BABAG -FL F330 -ETO 170729082816
-PT -PTID PEVAL -FL F330 -ETO 170729082916
-PT -PTID PETAK -FL F330 -ETO 170729091754
-PT -PTID PINDO -FL F330 -ETO 170729093322
-PT -PTID EDASI -FL F165 -ETO 170729094347
-PT -PTID LGTS -FL F000 -ETO 170729095713
-END RTEPTS
-SID ANEKI8L
-ATSRT Y163 ANEKI NATOR
-ATSRT UN850 NATOR TRA
-ATSRT UP131 TRA RESIA
-ATSRT Q333 RESIA BABAG
-ATSRT UN606 BABAG PEVAL
-DCT PEVAL PETAK
-ATSRT UL607 PETAK PINDO
n -ATSRT UM603 PINDO EDASI
「ICAO4444」より「ADEXP」の方が長いのは、途中で経由するウェイポイントの高度情報や推定時間なども含まれているためです。
ウェイポイントは多数存在することから、ICAOなどの団体では重複した名前を根絶する取り組みを行っており、少なくとも2つの同一の識別子が近くにならないようにしています。
今回は不幸なことに、4000海里(約7400km)離れた出発地の近くと到着地の近くの2つのウェイポイントに同一の識別子が与えられていました。
「FPRSA-R」はこのデータの処理にあたり、重複する2つのウェイポイントを飛行するためのルートを見つけられませんでした。システムは、常に安全性を重視する設計のため、安全な方法で行程を進められない場合、手動介入が必要な状態に切り替わるのですが、今回の事例では、影響を受けるシステムが処理を続けられなくなる重大な例外が発生したとのこと。
当然ながら「FPRSA-R」にはバックアップがあり4時間分のデータを保存しているのですが、今回は4時間では復旧できませんでした。復旧を担当したエンジニアチームは標準的な復旧プロセスを何段階か試しましたが成功せず、最終的にはFPRSA-Rを作ったFrequentis AGに連絡を取って復旧に成功しました。
なお、今回の出来事について航空会社は補償を求めていますが、NATSのマーティン・ロルフCEOは「この出来事は1500万分の1の確率で起きるものでした。我々は過去に1500万件のフライトプランを処理してきましたが、こんなことは初めてです」と弁明しました。
このロルフCEOの弁明に対して、報告書などの調査を行ったジェームス・ヘイドン氏は、FPRSA-Rが2018年に導入されたものであることから「ロルフCEOの言い分は、この種の出来事は『5年に1度』起きる可能性があったというもので、航空交通管制が完全に溶解するのに十分な頻度だと思います」と指摘しています。