One-liner
ErrorBoundary が !online のとき無条件で OfflineScreen を返すため、本当のローダーエラー / 500 系がユーザーから見えなくなる。
Description
pkgs/frontend/app/root.tsx:105 付近の ErrorBoundary が useOnlineStatus() の !online を判定基準にして、OfflineScreen を優先表示している。iOS Safari がモバイル↔Wi-Fi 切替時に瞬間的に offline を報告したり、page-visibility 拡張で false が立つ瞬間に Goldsky が 502 を返した場合、ErrorBoundary は OfflineScreen に切り替わる。
失敗シナリオ
- Goldsky が一時的に 502
- 同タイミングでユーザーのモバイル網が一瞬切れる
- ErrorBoundary は「オフラインです」を出す
- ユーザーは画面リロードを繰り返す
- 接続は復活しているのに同じ表示なので、サーバー障害だと気付けない
サポート側からも障害の検知が遅れる。
Requirements
Supplements
関連ファイル:
pkgs/frontend/app/root.tsx
pkgs/frontend/hooks/useOnlineStatus.ts
pkgs/frontend/app/components/error/error-screens.tsx
出典: v3 code-review (/code-review ultra-high effort, 2026-05-27)。
One-liner
ErrorBoundaryが!onlineのとき無条件でOfflineScreenを返すため、本当のローダーエラー / 500 系がユーザーから見えなくなる。Description
pkgs/frontend/app/root.tsx:105付近のErrorBoundaryがuseOnlineStatus()の!onlineを判定基準にして、OfflineScreenを優先表示している。iOS Safari がモバイル↔Wi-Fi 切替時に瞬間的に offline を報告したり、page-visibility 拡張で false が立つ瞬間に Goldsky が 502 を返した場合、ErrorBoundary は OfflineScreen に切り替わる。失敗シナリオ
サポート側からも障害の検知が遅れる。
Requirements
OfflineScreenの表示条件を見直す。簡単には「errorが存在する場合は OfflineScreen を出さない」分岐を入れるTypeError: Failed to fetch)でのみ OfflineScreen を出すSupplements
関連ファイル:
pkgs/frontend/app/root.tsxpkgs/frontend/hooks/useOnlineStatus.tspkgs/frontend/app/components/error/error-screens.tsx出典: v3 code-review (
/code-reviewultra-high effort, 2026-05-27)。