Service Worker の登録に失敗しました: リダイレクトによるセキュリティエラー

最新のアップデート以降、Chrome で Service Worker に関する以下の JS エラーが発生しています。

The script resource is behind a redirect, which is disallowed.

_application-786bec8dbeba5dccf3118668436791948e535eb587456944e94e0724bc417b14.js:76435 

Failed to register Service Worker: SecurityError: Failed to register a ServiceWorker for scope ('https://www.xxxxx.com/') with script ('https://www.xxxxxx.com/service-worker.js'): The script resource is behind a redirect, which is disallowed.

アップロードファイルは S3 にホストし、Cloudfront 経由で配信しています。

どなたかご存知ありませんか?

わかりません。@falco がサービスワーカーの変更を行っていることは知っています。

奇妙なことに、デバッグコンソールでスクリプトを確認すると、

Could not load content for https://cdn-uploads.xxxxxxx.com/assets/_application-786bec8dbeba5dccf3118668436791948e535eb587456944e94e0724bc417b14.js (HTTP error: status code 403, net::ERR_HTTP_RESPONSE_CODE_FAILURE)

というエラーが表示されます。

どうやら、そのスクリプトが存在しないようです。今すぐアプリを再ビルドしてみます。もしかしたら一時的な不具合かもしれません。

サービスワーカーの URL を cURL で取得すると、2xx の代わりに 3xx のレスポンスが返されますか?

service worker.js は 200 でした。

しかし、奇妙なことに、それを読み込むスクリプトは 403 でした。

アプリを再度ビルドし次第、結果を報告します。

つまり、_aplication は Chrome DevTools の誤りです。これは application の整形済みバージョンであり、実際には存在しません。これはこのトピックの主題とは関係ありません…

つまり、リダイレクトの背後にあるわけではありません。もしかすると、ブラウザがその URL のリダイレクトをキャッシュしている可能性がありますか?DevTools の Network タブでこの特定のリクエストを確認できますか?

アプリを再構築しましたが、エラーは解消されません。再構築時にすべてのスクリプトに新しい URL が割り当てられ、キャッシュが破棄されるはずではありませんか?

サイトの URL を共有していただけますか?

デバッグモードでキャッシュを無効にしてもエラーが継続します。

サービスワーカーファイルに対して302リダイレクトが発生していますが、Meta上では単純な200レスポンスが返っています。再ビルドを試してみてください。

アプリを二度再構築しました。エラーは解消されました。

問題解決したようです。ありがとうございます!