【障害】すべてのリアルタイム通信がエラーになってしまった【アプリ保守は超面倒】

【障害】すべてのリアルタイム通信がエラーになってしまった【アプリ保守は超面倒】

こんにちは、Stacaの中の人です。

 

公開しているアプリで、またまたバグを出してしまいました。

 

今回は何もアプリを触ってないのに、ある日突然、リアルタイム通信ができなくなってしまった、という不具合です。

 

被害を受けた方、ごめんなさい。

 

Stacaのリアルタイム通信機能

 

僕が公開しているアプリ【Staca】はお客さんがスタンプカードを提示したり、お店がカードに押印して返却したり、といった操作を即時に通知するためにPusherを利用したリアルタイム通信機能を実装しています。

 

1秒以内で相手のアプリに通知できるので、とても便利な機能です。

 

実装にあたっては以下の記事を参考にしました。
mBaaSとPusherを使ってチャットアプリを作る

 

エラー発生は突然に・・・

Stacaはシステム的なエラーが発生したときには、エラーログをmbaasのデータストアに保存して、セッションを切断してログイン画面に戻すようにしています。

 

ある日、何気なくこのエラーログを眺めていると、2021年7月1日〜8日の期間で以下のようなエラーが500件以上、出力されていることに気づきました。

 

sendPusher
Error: Bad Request

 

お客さまからすると、スタンプカードの提示や返却といった基本的な操作をしただけなのに、システムエラーとなり強制的にログイン画面に戻されていたということです。

 

これはやばい。

 

でもアプリを修正してないのに、なぜ突然エラーが出だしたのか。

 

そういえばニフクラからお知らせがあったような・・・

2021年6月4日にニフクラmbaasから以下のお知らせが来ていました。

 

2021年07月01日(木)より、スクリプト機能の一部言語イメージの削除を実施させていただきます。
詳しくは以下をご確認ください。

 

■ 対象となるお客様
スクリプト機能を使用しているお客様

 

■ 変更内容
スクリプトにて提供中の言語イメージへ、新たに下記のバージョンを追加します。

 

・Node.js : 14.16.1
・Ruby : 3.0.1

 

あわせて、以下の旧バージョンを廃止します。

 

・Node.js : 10.19.0 ,10.15.0, 8.15.0
・Ruby : 2.5.3

 

これに伴い、スクリプトにて利用可能なNode.js、Rubyライブラリのバージョンアップを行います。

 

■ 注意事項
廃止される言語イメージで登録されているスクリプトは、廃止以降は実行不可となります。
あらかじめ、アップグレードいただきますよう宜しくお願いいたします。

 

Pusherのリアルタイム通信サービスはニフクラのスクリプト機能を使っているので、これは怪しい。2021年7月1日からエラーが出続けているのもお知らせの内容と合致する。

 

あわててNode.jsのバージョンを確認してみると、やはり廃止対象の「10.15.0」を使っていました。。。Σ( ̄ロ ̄lll)ガーン

 

スクリプトの実行ログにも、しっかりエラーが出ていました。

{
"Status": "ERROR",
"RequestHeaders": "{}",
"RequestQuery": "{}",
"ResponseHeaders": "{}",
"Error": "InvalidParameterError: 10.15.0 is invalid version",
"Duration": 2,
"created_at": "2021-07-08T11:13:16.000Z",
"updated_at": "2021-07-08T11:13:16.000Z",
"ResponseStatus": 400,
"ScriptIdentifier": "pushercard.js"
}

 

秒速でバージョンアップ&お詫びのお知らせ掲載

 

スクリプトを「14.16.1」にバージョンアップして、エラーが出ないことを確認。
ニフクラスクリプト

 

そして、アプリにお詫びのお知らせを掲載しました。

 

いつもStacaを利用いただきましてありがとうございます。

 

以下の期間、スタンプカードの提示および返却の際にエラーが発生しておりました。

 

 2021/7/1(木) 0:00 〜 7/8(木) 21:20

 

現在は復旧しております。

 

◆原因
リアルタイム通信サービスが利用できない状況であったため
Stacaで使用しているライブラリをバージョンアップし、復旧しております。

 

このたびは長期間にわたりご迷惑をお掛けしまして、大変申し訳ございませんでした。

 

今後ともStacaをよろしくお願いいたします。

 

〜 Stacaサポートチーム 〜

 

教訓

 

  • 使用しているプラットフォームからのお知らせはよく読む
  • アプリを修正してなくてもエラーログは毎日監視する

 

しかし、アプリを何にも触ってないのに突然エラーが出るなんて怖いですね。

 

自業自得と言えばそれまでですが、2年前の最新バージョンが使えなくなるなんて。なんだかなぁ。。。

 

アプリの保守って、面倒っす。

PR


 このエントリーをはてなブックマークに追加 

PR


HOME スマホアプリ開発ブログ SE入門講座 プログラミングスクール フリーSE案件サイト SEおすすめ書籍