三菱東京UFJ銀行の一部キャッシュカードが、5月12日の午前7時から約5時間セブン銀行のATMで使えなくなった原因が分かった。三菱東京UFJ銀のシステムからセブン銀のシステムに送信する取引結果データの文字コードに誤りがあり、セブン銀のシステムが取引結果を正常に処理できなかった。約2万件の取引が影響を受けた。
取引ができなかったのは、取引対象が旧東京三菱銀の店舗の口座で、かつ通帳に未記入の明細が10件以上あるときに限られる。この条件を満たす場合、三菱東京UFJ銀のシステムは、通帳記帳を促す案内文を取引結果データに加えて、セブン銀に送信する。この案内文はカタカナだけを使用すると両行で取り決めていた。
一方、三菱東京UFJ銀は5月10日の夜9時から12日朝7時までシステムを臨時停止し、旧東京三菱銀ベースの勘定系システムに旧UFJ銀の機能を追加した新システムを稼働するための切り替え作業を実施した。同時に、新システムに旧東京三菱銀の店舗250店をつなぎ替えた。
これらの作業の一環で、セブン銀に送る案内文を、漢字を含む文字コードに変更する作業を実施した。ところが、何らかの理由で、コードの変更がセブン銀に伝わっていなかった。このため、セブン銀のATMで印字データを正常に処理できずエラーとなった。現在は、通帳記帳を促す案内文を送る機能を一時的にストップさせる応急処置を講じているもよう。
不具合の直接の原因は分かったが、根本的な原因について2つの疑問が残る。1つは、文字コードを変更する計画がどうしてセブン銀に伝わっていなかったのか。もう1つは、なぜ事前のテストで文字コードの不一致を発見できなかったのかだ。
切り替え作業に先駆け、三菱東京UFJ銀は100万件以上のテストを消化している。社外との接続テストも、100以上に及ぶすべての相手先との間で実施した。仮にコード変更の伝達漏れがあったとしても、条件に合うパターンをテストしていれば、そこで不具合が見つかったはずだ。
これら2つの疑問から、セブン銀との接続テストで利用した口座に、未記入の明細が10件以上の口座がなかったケースが考えられる。取引自体が正常に処理されることは確認したが、通帳記帳を促す案内文の確認が漏れたとの推測だ。あるいは、接続テストの後に文字コードを急きょ変更した、セブン銀との接続テストを実施しなかった、なども論理的には考えられるが可能性は低い。三菱東京UFJ銀は根本原因について「現時点では不明」(広報)と回答する。