[Website] Fix Safari PWA cache failures by stripping Range headers #3200
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This is a potential fix for intermittent Safari PWA failures after deployments where the site displays a blank page until the cache is manually cleared.
Theory: Safari sometimes adds
Rangeheaders to asset requests, causing servers to return206 Partial Contentresponses. These partial responses fail when usingCache.put()because the Cache API requires complete responses.The Problem
After deploying playground.wordpress.net, Safari users sometimes experience:
main.jsare accessibleThe Fix
Strip the
Rangeheader from requests before fetching incacheFirstFetch(). This ensures:200 OKwith complete responses instead of206 Partial ContentCache.put()Important Note
This is a best-guess fix since the issue is not easily reproducible outside the deployed production environment. The Safari-specific behavior with Range headers in PWA contexts is well-documented, and this fix addresses that known issue. However, the root cause of the blank page problem may be more complex.
Testing
The change is defensive and shouldn't affect normal operation: