【悲報】朝起きたらiPhoneが反抗期に、開くたびホーム画面へ強制送還の怪
9月29日の朝、iPhoneで複数のアプリが起動直後に突然落ちる障害が発生した。日本時間9時41分に始まり、SNSには困惑の報告が相次いだ。すでに復旧済みと案内されている。原因は端末の故障でもOSの更新でもなく、Googleが提供する解析機能、Googleアナリティクス4 Firebase側の受信データ形式に問題があったと説明されている。アプリに組み込まれたSDKがそのデータを処理する際にクラッシュを引き起こしたという。
開発側の案内では修正の配信は11時52分までに完了したとしている。ただし配信の仕組み上、キャッシュの影響で最大4時間ほど症状が残る可能性があり、15時52分に完全解決と補足された。この修正を適用するためのSDK更新は不要とされている。利用者側で何かを入れ直す必要はないという整理だ。
看板はApple、裏で転んだのはGoogleという構図
スマートフォン上では別々のアプリに見えても、裏側では利用状況を把握するための共通の仕組みが使われている。Firebaseの解析機能はアプリの利用状況や行動を把握するためのもので、多くのアプリが同じSDKを組み込んでいる。今回はそのSDKが受け取ったデータの形式に関する問題で、解析が失敗した際に本体のアプリまで巻き込んで落としてしまった形だ。本来であれば解析機能だけが止まり、アプリ本体は動き続ける設計が望ましいが、地下の配管がつながっているがゆえに落ち方まで共通になった。
象徴的なのが開発者から示された一例だ。アプリの更新を出していないのに、公開済みの4つのビルドで同時に症状が始まり、最初の18分で56ユーザーに56件のクラッシュを記録したという。古いビルドも落ちるため、コードを昔に戻して逃げる作戦も取りにくい。別の会社のアプリでも似た症状が出て、そこで共通点が見えてくるという経緯だった。利用者は本体を疑い、開発者は自分のコードを疑い、全員で迷子になる構図が生まれた。
9時41分という最も困る時間帯と15時52分までの時差
発生が朝9時41分という、これからスマホを使う時間帯に始まったことも混乱を広げた。切符やクーポンを出す瞬間に落ちれば後ろの行列が気になり、連絡も地図も買い物も1台に寄せているほど不安は大きくなる。1個だけならそのアプリを疑うが、複数で起きると本体が壊れたと思うのが自然な心理だ。2年前の端末で3つのアプリが落ちて寿命かと疑ったという声もあった。
さらに11時52分の修正配信と15時52分の完全解決の時間差が理解を難しくした。修正済みと見たのに自分だけ落ちれば余計に不安になるが、キャッシュで最大4時間残ると分かれば状況を飲み込める。治った人とまだ落ちる人が同時にいると報告も食い違って見えるため、発生時刻と修正時刻はセットで見る必要がある。クラッシュの報告ツールに遅れて届く記録は過去に起きたものが残る場合があるとも補足されており、今起きたのか昔の記録が今届いたのかを分ける視点も求められる。
OS更新と勘違いしやすい落とし穴と再発防止の宿題
OS更新と時期が近いとそちらを疑い、更新した人もしていない人もまず自分の操作を振り返りがちだ。原因が分からない時の検索では違う不具合の対処法まで混ざって出てくるため、直したくて余計な操作をして困るパターンが一番避けたいところだ。Firebaseという名前自体、アプリを使う側は普段見かけない。知らない共通部品が多すぎるという指摘は重い。
詳しい根本原因と再発防止策についてはGoogle側が引き続き調査すると説明している。復旧しましただけで終わらず、何が起きて何を変えるのかが次の説明として注目される。便利だから同じ仕組みを使うのは当然だが、使われ方を調べる機能が使われる前にアプリを落とすという皮肉を繰り返さないためにも、変な形式のデータを受け取った時にアプリまで巻き込まない設計が求められる。普段は存在すら知らない共通基盤にどれだけ頼っているかを考えさせられる出来事だった。
ネットの反応
新端末に引き継ぎ直後にこれ食らったんでビビった、開発側の問題だったのか
iPad Airだけどこれなったわ、3アプリで落ちた、2年前の端末だったけどもう寿命って疑ったわ
今やスマホは生活インフラ、いきなり使えなくなると買い物も出勤手続きも出来ん、マジ勘弁して欲しいわ
そういう事だったんだね、5回ぐらいアプリタップしたら動いたからそのうち修正されるだろうと思ってた
AIの所感
表の看板と裏の基盤が違うという現代のスマホの現実がよく表れた一件だと感じる。1台に生活を寄せるほど、見えない共通部品の影響は大きくなる。時刻と原因をセットで知るだけで不安はかなり和らぐ。次に出る再発防止の説明まで冷静に追いかけたい。

