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

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

※ 本ページにはアフィリエイト広告(PR)が含まれます。

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

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

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

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

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

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

1秒以内で相手のアプリに通知できるので、非常に便利な機能です。ユーザー体験の向上に欠かせません。

実装にあたっては、ニフクラのスクリプト機能とNode.jsを組み合わせることで、スケーラブルで信頼性の高いバックエンド環境を構築しました。
mBaaSとPusherを使ってチャットアプリを作る

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

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

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

sendPusher
Error: Bad Request

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

これはやばい。

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

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

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

2026年04月01日(水)より、スクリプト機能の実行環境をアップグレードいたします。
詳しくは以下をご確認ください。

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

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

・Node.js : 24.0.0
・Ruby : 3.4.0
・Python : 3.12.0

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

・Node.js : 18.x, 20.x
・Ruby : 2.7.x, 3.0.x
・Python : 3.8.x, 3.9.x

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

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

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

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

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

{
"Status": "ERROR",
"RequestHeaders": "{}",
"RequestQuery": "{}",
"ResponseHeaders": "{}",
"Error": "InvalidParameterError: 20.x is invalid version",
"Duration": 2,
"created_at": "2026-04-15T14:25:30.000Z",
"updated_at": "2026-04-15T14:25:30.000Z",
"ResponseStatus": 400,
"ScriptIdentifier": "pushercard.js"
}

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

スクリプトを「24.0.0」にバージョンアップして、エラーが出ないことを確認。同時に非同期処理とPromiseの最新パターンに対応させ、スケーラビリティを向上させました。
ニフクラスクリプト

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

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

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

 2026/4/1(水) 0:00 〜 4/15(水) 14:30

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

◆原因
バックエンド実行環境の定期メンテナンスにより、サポート対象外となったNode.jsバージョンでスクリプトが実行できない状況が発生いたしました。ニフクラのスクリプト実行環境を最新のNode.js 24.0.0にアップグレードすることで復旧しております。

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

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

〜 Stacaサポートチーム 〜

教訓

  • 使用しているプラットフォームからのお知らせはよく読む
  • アプリを修正してなくてもエラーログは毎日監視する
  • 依存するランタイムのLTSサポート期間を定期的に確認する
  • 本番環境では3ヶ月ごとにプラットフォームの更新情報をチェックする習慣をつける

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

自業自得と言えばそれまでですが、ランタイムのバージョンサポート終了に伴う強制アップグレードは、アプリ開発者にとって常に課題です。クラウド環境では定期的なメンテナンスが避けられず、バージョン廃止のお知らせを見落とすと大変なことになります。

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

ITエンジニアのキャリアアップを検討しているなら

レバテックキャリアに無料登録

PR




PR


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