無料プランのプロジェクトが一時停止 (INACTIVE) になっていた実体験。アプリ側からはただのネットワークエラーに見えるので気づきにくい。対策として実際にやった設計変更も書く。

起きたこと

開発を数週間止めていたゲームの Supabase プロジェクトを久しぶりに見たら、INACTIVE (一時停止) になっていた。

Supabase の無料プランは、プロジェクトへのアクセスが無い期間が続くと自動で一時停止される。仕様として明記されている動きで、不具合ではない。

何が困るか

  • ログイン、データの読み書きが全部失敗する
  • アプリ側からは「ネットワークエラー」「読み込めません」にしか見えない
  • つまり、止まっていることに気づきにくい。ユーザーがいたら、理由の分からない障害として見える

自分の場合は利用者数の確認をしようとして初めて気づいた。データベースが止まっているので、そもそも「何人使っていたか」すら読めない状態だった。

復帰について

管理画面から再開の操作ができる。ただし自分はすぐ再開せず、設計を見直す判断をした (理由は次の節)。長期間放置したプロジェクトの扱いは変わることがあるので、残したいデータは手元にエクスポートしておくのが安全。

実際にやった対策: 止まって困らない設計へ

このゲームはオンライン前提で作っていたが、実測したらネット通信に依存するコードは全体の1.4% (26,203行中371行) しかなかった。そこで、

  1. セーブデータの保存先を端末内に差し替え
  2. サーバー必須の機能 (対戦・交流系) はコードを残したまま切り離し
  3. 一人用部分だけで成立するオフライン版に再構成

という方針に変えた。無料枠で運用するなら「止まる前提」で、止まっても動く部分を増やしておくほうが現実的だった。

まとめ

  • 無料プロジェクトは放置で止まる。仕様。
  • 止まるとアプリからはただの通信エラーに見える
  • 本番で使うなら有料プラン、無料で続けるなら「止まっても動く設計」に寄せる