Security

How to Fix an SRI Hash Mismatch in the Browser

Diagnose integrity failures caused by changed files, line endings, CDN transformations, redirects, and CORS.

Photorealistic editorial photo for Sri Hash Mismatch
Security · Practical ideas for your next build

When the browser reports that no valid digest was found, the bytes it received did not match the expected integrity value. Removing integrity hides the symptom but discards the check. Diagnose the deployed resource and the release process so the URL, content, and hash agree.

Inspect the actual network response

Check the final response URL, status, response body, and content type. A missing file may return an HTML error page, which cannot match a JavaScript digest. A redirect may lead to a different version or login page. Save the response bytes and compute a fresh digest locally. Avoid hashing copied DevTools text when exact-byte verification is required.

Look for transformations between build and browser

Minification, banners, encoding changes, newline conversion, and CDN rewriting all change the digest. Transfer compression such as gzip is decoded by the browser before integrity verification; the relevant content is the decoded resource representation. Compare the published asset with the build artifact and check whether different edge locations or caches serve different versions.

Update assets and markup consistently

Publish versioned immutable filenames and deploy matching markup together. A stale HTML page pointing at a resource whose bytes were replaced can create intermittent failures. Check CORS separately: a cross-origin integrity request can fail even when your calculated digest is correct if the server does not allow the request appropriately. Test after clearing or bypassing relevant caches, then confirm normal cached navigation also succeeds.

Worked example

EXAMPLE
Checklist:
1. Exact final URL
2. Successful resource response
3. Matching decoded bytes
4. Correct integrity prefix
5. Valid cross-origin response

Can whitespace alone cause an SRI failure?

Yes. A single changed byte, including a newline or added comment, changes the digest.

Reference and further reading

Read the official documentation ↗