【障害】すべてのリアルタイム通信がエラーになってしまった【アプリ保守は超面倒】
こんにちは、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年前の最新バージョンが使えなくなるなんて。なんだかなぁ。。。
アプリの保守って、面倒っす。
【障害】すべてのリアルタイム通信がエラーになってしまった【アプリ保守は超面倒】 関連ページ
- 【個人スマホアプリ開発】公開しているアプリ<Staca>の紹介
- スマホアプリ開発で【monaca】を選んだ理由と実際に使ってみた感想
- 【アプリで稼ぎたい】個人開発のスマホアプリってどれくらい儲かるの?【無理ゲー】
- 【monaca】開発を効率化するために実践している4つのこと【Tips】
- 【monaca】アプリ公開前にこれだけはやっておこう!【あとで困ります】
- 【悲報】初めてアプリ課金が発生!喜んだのもつかの間【現実は厳しかった】
- 【障害】ローカルストレージの会員認証データが消えた【ごめんなさい】
- 【初心者向け】スマホアプリ開発の始め方【最短ルートでアプリ公開】
- 【祝】Stacaの会員数が5000人を突破しました【スマホアプリ開発】
- 【20代限定】未経験から3年で年収1000万の安定収入(+α)を得る方法【IT業界】
- 【monaca】AppTrackingTransparencyの実装方法【IDFA対応】
PR