리다이렉트 보안 오류로 인해 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를 통해 CDN으로 전달하고 있습니다.

도움 주실 분 계신가요?

확실하지 않아요. @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의 pretty printed 버전이므로 실제로 존재하지 않습니다. 이 토픽의 주제는 그런 문제가 아니에요…

즉, 리다이렉트 뒤에 있는 것이 아닙니다. 혹시 브라우저가 해당 URL에 대한 리다이렉트를 캐시한 것은 아닌가요? DevTools의 Network 탭에서 이 특정 요청을 확인해 볼 수 있을까요?

앱을 다시 빌드했지만 에러가 계속 발생합니다. 다시 빌드하면 모든 스크립트에 새 URL이 부여되어 캐시가 무효화되지 않나요?

사이트 URL을 공유해 주시겠어요?

디버그 모드에서 캐시를 비활성화해도 오류가 계속 발생합니다.

서비스 워커 파일에 대해 302 리다이렉트가 발생하고 있는데, Meta에서는 단순히 200 상태 코드가 반환됩니다. 재빌드를 시도해 볼 수 있을까요?

앱을 두 번째로 다시 빌드했습니다. 에러가 사라졌어요.

해결된 것 같습니다. 감사합니다!