Safariでだけ画面が白くなる、初期化前の値を参照したエラーが出る。Safari 27のモジュールローダー修正は、その一部を説明する材料です。ただし、Safariの白画面がすべてこの修正で解消するわけではありません。
WebKitは2026年9月2日の技術記事で、top-level awaitに関係するモジュール評価の問題とローダーの書き直しを説明しています。同じ非同期モジュールを並行してdynamic importした際、評価が終わる前に読み込み側が先へ進むケースなどが対象です。Safari 27.0のリリース説明にも修正が含まれています。
自社サイトが該当するかは、エラーから調べる
最初に「Safari 27へ更新したら直った」という結果だけを集めると、キャッシュ、配信されたJavaScript、ネットワーク状態の違いを見落とします。
調査では、次の情報を同じ記録に残します。
| 項目 | 残す理由 |
|---|---|
| URLと再現操作 | どの画面・遷移で起きるかを固定する |
| OS・Safariのバージョン | 修正を含む環境との比較に使う |
| 配信したビルドの識別子 | 別のJavaScriptを比較していないか確認する |
| コンソールのエラー | 初期化順序、通信失敗、構文エラー等を区別する |
| キャッシュ条件 | 初回訪問と再訪問の違いを確認する |
自社のコードでtop-level awaitを使っていなくても、依存ライブラリやビルド結果を確認する余地はあります。一方、名前が似たエラーだけを根拠に、この不具合だと断定することもできません。
比較用の環境を残してから更新する
再現する旧環境を失うと、原因の切り分けが難しくなります。可能なら旧版と新版の検証環境を残し、同じビルド・同じ操作・同じデータで比べます。iPhoneではOSのバージョンも記録します。Macについては、Safariの更新が必ずmacOSのメジャー更新と一体というわけではありません。
確認結果は、例えば次のように書きます。
記録例:ビルドAの画面Bで、旧環境では3回中2回エラー。新環境では3回とも発生せず。ただし、この結果だけではモジュールローダーが原因と確定しない。
これは書き方の例で、当社の測定値ではありません。原因を詰める場合は、失敗するモジュールの依存関係を小さな再現例にし、該当するWebKitの修正内容と照合します。
修正の採用と、利用者への案内を分ける
利用者へ更新を勧める場合でも、更新できない端末が残るなら、サポートする環境の範囲を決める必要があります。アプリ側の回避策は、対象の不具合を再現してから検討し、すべての読み込み順を不用意に変えないようにします。
外部サービスの読み込みが止まるケースは、埋め込みSaaSの障害に備える設計でも扱っています。見た目が同じ白画面でも、調べる層は異なります。
2026年9月20日にWebKitの公式資料を確認。Safari旧版・新版での再現比較は未実施です。WebKit側のテスト結果を当社の検証結果として扱っていません。
ブラウザ別の不具合の切り分けは、グリームハブへご相談ください。









