なぜ数字のズレは発生するのか。その根底には、クラウドサーバーと手元のスマートフォンが交わす複雑なデータ通信がある。チャットの送受信が行われる際、画面上に数字を表示させるプッシュ通知と、アプリ内のトーク履歴データは別々の経路をたどって端末へ届く。
基盤を支えるのは、iOS端末向けのApple Push Notification serviceや、Android端末を支えるFirebase Cloud Messagingだ。これらの通知配信基盤から端末へバッジの更新命令が届いても、ローカルデータベースの書き換えが何らかの通信遅延でタイムアウトすると、実データと表示カウントの間に「隙間」が生まれる。
特に電波状況が不安定な地下鉄や混雑エリアでは、パケットの欠落が起きやすい。メッセージ本文は読み込めたのに未読バッジの消去シグナルだけがサーバーに届いていない状態、あるいはその逆の現象が、あの消えない数字の正体だ。