net::ERR_BLOCKED_BY_RESPONSE is Chromium error -27. Chromium defines it as a request that «failed because the response was delivered along with requirements which are not met (X-Frame-Options and Content-Security-Policy ancestor checks and Cross-Origin-Resource-Policy for instance)» (net_error_list.h). In practice the most common trigger is the first one — a page refusing to be put in an <iframe> — not the cross-origin-isolation family. The error is not about TLS and does not block HTTPS: the response arrived over a working connection and was then rejected.
Below: how to tell which requirement blocked you, then the fix for each.
Free online tool — website security scanner: instant results, no signup.
Four different mechanisms surface as the same network error. The DevTools console message tells them apart — read it before changing any header.
| Blocked by | Console message contains | Fix on |
|---|---|---|
X-Frame-Options | «Refused to display … in a frame because it set X-Frame-Options» | The framed site — drop the header or move to CSP |
CSP frame-ancestors | «Refused to frame … because an ancestor violates … frame-ancestors» | The framed site — add your origin to the directive |
Cross-Origin-Resource-Policy | a CORP entry in the Issues panel next to the failed request | The resource server — set cross-origin |
Cross-Origin-Embedder-Policy | the embedding page sends require-corp | Every subresource must opt in with CORP |
Two of these you cannot fix from your own site: X-Frame-Options and frame-ancestors are set by the site you are trying to embed, and they are a deliberate refusal. There is no client-side flag that overrides them. Check what a target actually sends with the HTTP header checker before assuming it is your configuration.
Cross-Origin-Embedder-Policy: require-corp embeds a resource without CORPCross-Origin-Resource-Policy: cross-originCORP: same-siteCross-Origin-Opener-Policy: unsafe-none (relaxes)same-origin + require-corpThe ERR_BLOCKED_BY_RESPONSE error occurs when a browser blocks a request due to Cross-Origin Embedder Policy (COEP) or Cross-Origin Resource Policy (CORP) settings. To resolve this, ensure your server responds with the correct headers: Cross-Origin-Embedder-Policy: require-corp and Cross-Origin-Resource-Policy: same-origin. Additionally, check for any CORS misconfigurations that may be causing the block.
The ERR_BLOCKED_BY_RESPONSE error is a security feature in modern browsers designed to protect users from potentially malicious content. This error indicates that a resource was blocked due to the absence of appropriate Cross-Origin policies. COEP and CORP are security headers that help control how resources are shared across different origins. Specifically, COEP requires that any cross-origin resources are explicitly marked as safe via CORP, otherwise, they will be blocked.
When a web application requests resources (like scripts, images, or iframes) from a different origin, the browser checks the response headers to determine if the request should be allowed. If the required headers are not present or are incorrectly configured, the browser will block the request, leading to the ERR_BLOCKED_BY_RESPONSE error.
To better understand this issue, let's look at the two key headers:
unsafe-none, require-corp, and require-embedder.same-origin, same-site, and cross-origin.Both headers are crucial for maintaining a secure browsing experience and preventing clickjacking, data theft, and other security vulnerabilities.
To fix the ERR_BLOCKED_BY_RESPONSE error, you need to ensure that your server is configured to send the appropriate headers. Here’s a step-by-step guide to resolving this error:
Header set Cross-Origin-Embedder-Policy "require-corp"
Header set Cross-Origin-Resource-Policy "same-origin"curl to verify the headers directly from the command line:curl -I https://yourdomain.com/resourceIf the headers are correctly set, you should see:
HTTP/1.1 200 OK
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Resource-Policy: same-originBy following these steps, you should be able to effectively resolve the ERR_BLOCKED_BY_RESPONSE error and ensure your web application operates smoothly across different browsers.
The tool checks HTTP security headers, SSL/TLS configuration, server info leaks, and protection against common attacks (XSS, clickjacking, MIME sniffing). A grade fromA to F shows overall security level.
Checking Content-Security-Policy, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, and more.
TLS version, certificate expiry, chain of trust, HSTS support.
Finding exposed server versions, debug modes, open configs, and directories.
Detailed report explaining each issue with specific steps to fix it.
HTTP header audit
config verification
CSP & HSTS setup
compliance checks
Strict-Transport-Security.Server: Apache/2.4.52 helps attackers find exploits. Hide the version.DENY or SAMEORIGIN.nosniff, browsers may misinterpret file types (MIME sniffing).Content-Security-Policy-Report-Only, monitor violations, then enforce.Server, X-Powered-By, X-AspNet-Version from responses.Security check history and HTTP security header monitoring.
Sign up freeA mode where the page is safe from Spectre-class attacks. Required for SharedArrayBuffer, performance.measureUserAgentSpecificMemory, and high-precision timers.
DevTools → Console → "Failed to load resource: net::ERR_BLOCKED_BY_RESPONSE". Network tab — resource highlighted red.
Yes. Without COOP/COEP the page cannot safely use SharedArrayBuffer — hence Chrome's restrictions.
Enterno CORS checker inspects Access-Control-* headers. + DevTools → Network → Response Headers.
You do not. X-Frame-Options and CSP frame-ancestors are the target site refusing to be framed, enforced by the browser on their instruction. The only real routes are an agreement with that site to allow your origin, an API or oEmbed endpoint they publish, or server-side proxying with their permission.
No. Chromium error -27 is decided after a response has already been delivered over a working connection — TLS is not in the path. The request is rejected because a requirement carried by that response was not met.
Free plan — 10 monitors, checks every 5 min, no card required. Upgrade for 1-minute interval and multi-region monitoring.