Last updated: Oct 26, 2025
The “No data received” error in Google Chrome (now commonly shown as ERR_EMPTY_RESPONSE) appears when Chrome successfully connects to a website but doesn’t receive any data back from the server. In other words, the connection is opened — but no response is delivered, so the browser has nothing to display. This is different from a DNS error or SSL error because the request actually reaches the server — but the connection closes before a valid response is returned.
This problem can be caused by browser-related issues such as stale network sockets, QUIC/HTTP3 conflicts, corrupted cached sessions, or extensions blocking data transfer. However, it can also come from the network layer (proxy, DNS, VPN, router timeout) or even the server itself (reverse proxy misconfiguration, upstream timeout, CDN idle disconnect).
Unlike generic “page not loading” problems, ERR_EMPTY_RESPONSE is specifically a “Chrome didn’t receive any data” scenario, which is why it often appears intermittently, on specific websites, or after long idle sessions. It may also show up more frequently on Wi-Fi networks with packet loss, corporate filtering, or public hotspots using traffic inspection.
In this guide, you’ll learn:
-
What the “no data received” / ERR_EMPTY_RESPONSE error actually means
-
The real technical cause (connection established → response missing)
-
Whether the issue is browser-side, network-side, or server-side
-
Easy user-side fixes and deeper troubleshooting steps
-
Advanced solutions (QUIC, socket pool, MTU, HTTP/3 issues)
-
When it’s actually the website/server that is failing
This is a complete troubleshooting guide — not just “clear your cache and restart Chrome.” By understanding why the error occurs, you can fix it properly and prevent it from happening again.
What ERR_EMPTY_RESPONSE Actually Means (Plain English + Technical Explanation)
When Chrome shows “No data received” or ERR_EMPTY_RESPONSE, it means the browser successfully reached the server but the server failed to send any content back. That’s why the page appears blank — Chrome requested data, but the connection closed before any response body was delivered.
This makes it different from DNS errors (which occur before connection) or SSL errors (which occur during the TLS handshake). Here, the request succeeded, but the response was empty or prematurely terminated.
In simple terms:
Chrome connected to the website — but the website (or the network) didn’t provide any data in return.
Technical Breakdown
| Phase | Status |
|---|---|
| DNS Resolved | ✅ |
| Connection Established | ✅ |
| TLS Handshake | ✅ (in most cases) |
| Data Transfer | ❌ (server or network returned nothing) |
The request was opened — but no HTTP headers or content arrived.
This is why Chrome uses the term “empty response.”
Typical Triggers Behind an Empty Response
-
TCP connection is reset before body is sent
-
Proxy or VPN drops the response mid-transfer
-
Server worker or upstream process times out
-
QUIC/HTTP3 packet loss cuts transmission
-
Browser socket pool stuck in a stale session
Causes of “No Data Received” / ERR_EMPTY_RESPONSE in Chrome
This error does not mean the website is “down” — it means Chrome started the connection but never received a valid response. That can happen for three broad reasons: (1) something inside the browser prevented the response from being processed, (2) the network or proxy dropped the connection before data arrived, or (3) the server accepted the connection but failed to return any output. The key to solving this correctly is identifying which layer is failing.
User-Side Causes (Browser / Device Level)
These causes originate inside Chrome or your local device before the request reaches the server. They are especially common after updates or long browsing sessions.
-
Corrupted or stale network sockets
-
Inconsistent cached SSL session
-
Chrome QUIC/HTTP3 glitch (common on unstable Wi-Fi)
-
Misbehaving browser extensions
-
Chrome profile corruption
-
Temporary memory leak / Chrome process stalled
These often trigger ERR_EMPTY_RESPONSE on a single browser, while other browsers still load the site.
Network-Level Causes (DNS / Proxy / VPN / Router)
When the network path is unstable or filtered, Chrome connects successfully but never receives the packet stream containing the response.
-
Faulty or slow DNS resolver dropping the route
-
VPN or proxy cutting the connection mid-request
-
ISP filtering / transparent proxy interference
-
MTU mismatch causing packet loss
-
Public Wi-Fi or captive portal blocking HTTPS data
-
Misconfigured firewall killing idle sessions
If the site loads on mobile data but not Wi-Fi (or vice versa), this is the root cause.
Server-Side Causes (Hosting / Backend / Timeout)
This happens when the server accepts the connection but cannot deliver a response. Chrome waits — then eventually returns ERR_EMPTY_RESPONSE with no body sent.
-
Upstream timeout (Nginx/Node/PHP-FPM crash)
-
Application server hangs or restarts mid-request
-
CDN/proxy returns no content
-
Misconfigured reverse proxy
-
Backend closing connection with 0 bytes returned
In these cases, other devices may see the same error as well.
Quick Diagnosis Matrix
| Behavior | Likely Layer |
|---|---|
| Only Chrome affected | Browser issue |
| Affects Chrome on this network only | Network issue |
| Affects multiple devices | Server issue |
| Works after QUIC disabled | Protocol issue |
| Works in Incognito mode | Extension/profile issue |
User-Side Fixes (Browser-Level Solutions)
Most cases of “no data received” / ERR_EMPTY_RESPONSE start inside Chrome itself — not the website or the internet connection. Chrome maintains a socket pool, cached TLS sessions, and protocol preferences that can become stale, especially after long uptime, a browser update, or switching networks (Wi-Fi ↔ hotspot). When these cached connections are out of sync, Chrome sends a request but fails to receive a response — resulting in an “empty response.”
Before changing network settings or blaming the website, you should reset Chrome’s local connection state. This fixes a large percentage of cases instantly.
1. Flush Chrome’s Socket Pool (Fastest Fix)
Chrome sometimes holds onto stale or broken TCP sessions.
Steps:
-
Visit:
chrome://net-internals/#sockets -
Click Flush socket pools
-
Reload the page
If the website loads immediately afterward → socket corruption was the cause.
2. Clear Only DNS Host Cache (Not full browser cache)
This forces Chrome to refresh domain routing info.
-
Go to:
chrome://net-internals/#dns -
Click Clear host cache
-
Try the website again
3. Disable (temporarily) Browser Extensions
Extensions can block fetch responses or interfere with cookies.
-
Open:
chrome://extensions/ -
Disable all non-essential ones
-
Retry the page
Ad-blockers, privacy filters, and VPN extensions are the most common culprits.
4. Try Incognito Mode
Incognito bypasses corrupted session storage and extension interference.
-
If it works in Incognito → issue is extension, cookies, or profile corruption.
5. Reset Chrome Profile (without reinstalling)
If only your Chrome user profile is damaged:
-
Go to:
chrome://version -
Note your profile path
-
Close Chrome
-
Rename the
Defaultfolder toDefault_old -
Restart Chrome
This creates a fresh profile without a full reinstall.
If none of these browser-side fixes solve the issue, the next most likely cause is the network layer — DNS, proxy/VPN, or HTTP3/QUIC interference.
Network-Level Fixes (DNS, Proxy, VPN, Router & QUIC Issues)
If the browser-side connection is clean but Chrome still shows “no data received” / ERR_EMPTY_RESPONSE, the next most common cause is a network path interruption. This happens when Chrome successfully reaches the server, but the response packets never complete the round trip. DNS routing issues, ISP filtering, VPN tunneling, or QUIC/HTTP3 conflicts can all drop the connection after it opens — which results in an “empty response” instead of a traditional timeout error.
A good indicator that the problem is network-level is when the same website works fine on mobile data but not Wi-Fi, or when switching VPN on/off changes the result. That means the browser isn’t the problem — the traffic path is.
1. Change Your DNS Resolver
Unstable DNS is a top cause of this error on specific websites.
Use a reliable DNS such as:
| Provider | Primary | Secondary |
|---|---|---|
| Cloudflare DNS | 1.1.1.1 | 1.0.0.1 |
| Google DNS | 8.8.8.8 | 8.8.4.4 |
Then reload Chrome and test again.
2. Disable Proxy / Auto Proxy
Misconfigured or hijacked proxy settings often interrupt HTTPS connections.
Windows
Settings → Network & Internet → Proxy → Turn OFF “Use a proxy server”
macOS
System Settings → Network → Details → Proxies → Disable Manual/Auto proxy
3. Turn Off VPN (Temporarily)
Some VPNs rewrite headers or fail to forward data — which causes ERR_EMPTY_RESPONSE even when the connection opens successfully.
-
If the site loads without VPN → VPN was blocking or timing out the response.
4. Disable QUIC (HTTP/3) in Chrome
QUIC uses UDP/443, and many routers/firewalls block or throttle it. When QUIC packets drop, Chrome never falls back gracefully — which leads to an empty response.
Steps:
-
Go to:
chrome://flags/#enable-quic -
Set to Disabled
-
Restart Chrome
5. Restart Router (to clear NAT/DNS cache)
Routers sometimes cache broken routes or MTU mismatches. A restart forces a clean handshake path.
If the problem persists across different networks, it’s not a connectivity issue — it’s likely a backend/server timeout or CDN/proxy fault.
That brings us to the Advanced / Deep Fixes section next.
Advanced Fixes (Socket-Level, MTU, HTTP/3/QUIC, and Backend Timeouts)
When user-side and network changes don’t solve the issue, the cause is typically a transport-layer or handshake-level failure — meaning Chrome establishes the TCP (or UDP) connection, but the response never arrives because the packet exchange is broken midstream. These are not “browser bugs” — they are low-level protocol issues.
1. Fix Stale TCP Sessions (Full Chrome Network Stack Reset)
A normal socket flush clears some open sessions, but Chrome also caches stale QUIC and TLS session tickets.
Steps:
-
Visit:
chrome://net-internals/#events -
Click “Clear Browsing Data → Cached images/files + Hosted app data”
-
Then re-flush socket pools (as done earlier)
This resets Chrome’s transport cache layer, not just HTTP cache.
2. Adjust MTU (Fixes “Response Dropped Mid-Route”)
On some ISPs and corporate networks, packets above a certain size are dropped silently, leading to an empty response.
Windows (PowerShell):
MTU issues are a major hidden cause of “site only half loads then ERR_EMPTY_RESPONSE.”
3. QUIC/HTTP3 Force Fallback
Even after disabling QUIC in flags, Chrome may still negotiate QUIC if cached at handshake level. You can force HTTP/2 fallback via launch params.
Advanced (optional power users):
This resolves cases where UDP/443 is unstable or filtered.
4. SSL/TLS Session Ticket Corruption
If the server rotates TLS keys and Chrome still holds an old session ticket, the browser completes handshake but the server rejects the resumed session silently — returning no data.
Fix:
A full TLS reset = Clear SSL state + clear DNS + flush sockets
5. CDN / Reverse Proxy Timeout (Server Receives Request But Sends Nothing)
If you’re only seeing this error on one specific site, and it persists on every network, then the cause is usually on the origin server — particularly with Nginx, Cloudflare, HAProxy, or Node upstream.
This is when:
-
The server accepts the connection
-
But upstream worker crashes or times out
-
So the browser receives no HTTP header at all
That is exactly what triggers ERR_EMPTY_RESPONSE.
How to Confirm It’s a Server-Side Timeout
Run:
If no headers are returned → the server never responded.
That means it’s not your Chrome — it’s the site.
Server-Side Causes (When the Website Is Actually the Problem)
If the error happens across multiple devices and networks — and not just on your local Chrome — then the issue is not your browser. It is the server accepting the connection but failing to return a valid HTTP response. In these cases, Chrome receives an empty body (zero bytes), which triggers ERR_EMPTY_RESPONSE.
This is especially common with Nginx, Node.js, reverse proxies, or Cloudflare misconfiguration.
The Most Common Server-Side Causes
| Cause | What Happens | Why Chrome Shows “No Data Received” |
|---|---|---|
| Backend timeout | Upstream app is too slow | Connection closes before headers |
| Nginx/Apache misconfig | No default response written | Chrome sees empty body |
| Cloudflare or CDN fails | Edge cannot contact origin | TLS completes, no HTTP data |
| Reverse proxy routing error | Wrong upstream / no response | Packet stream stops |
| Large payload dropped | MTU/CDN truncates | Response never starts |
| Connection reset by server | Load balancer kills idle session | Zero bytes returned |
Chrome doesn’t show “500” or another HTTP code here — because the web server never sent a status line at all.
Fixes for Developers / Server Admins
-
Increase reverse proxy / gateway timeout (Nginx/HAProxy/Cloudflare)
-
Check that upstream app (Node/PHP/Python) returns headers before exit
-
Fix missing
returnorres.send()in handlers (common in Node/Express) -
Restart or scale backend workers if they are crashing
-
Ensure origin SSL certs aren’t expiring (CDN passthrough errors)
-
Fix keep-alive misconfigurations on load balancers
-
Rebuild full certificate chain if TLS handshake stalls completion
Diagnostic Commands for Developers
If headers never appear → upstream never replied.
Often reveals upstream timeout or worker crash.
If app restarts during request → empty response.
When It’s DEFINITELY Server-Side
| Symptom | Meaning |
|---|---|
| All browsers fail | Server issue |
| Mobile + desktop fail | Server issue |
| Works sometimes then breaks | Timeout / overload |
| Cloudflare 522 / 520 style intermittency | Origin not responding |
| curl shows no headers | Empty HTTP response |
Prevention & Best Practices (Avoiding Future ERR_EMPTY_RESPONSE Errors)
Once you fix the “no data received” / ERR_EMPTY_RESPONSE problem, the next step is preventing it from happening again. Because this error is caused by unstable connections, stale sockets, or broken backend responses, long-term prevention means keeping both Chrome’s transport layer clean and your network path stable.
If you’re an end user, most prevention is about keeping Chrome and your DNS path healthy. If you’re a website owner or developer, prevention means ensuring your server always responds with valid HTTP headers before closing the connection.
For Chrome Users
Keeping your connection state fresh helps avoid stale or broken sockets:
-
Periodically restart Chrome (especially after network switches)
-
Avoid low-quality VPNs and overloaded proxies
-
Use a stable DNS resolver like Cloudflare (1.1.1.1) or Google DNS (8.8.8.8)
-
Disable QUIC if your router or ISP handles UDP traffic poorly
-
Keep Chrome updated (HTTP/3 changes are ongoing)
-
Restart router occasionally to clear NAT & DNS caches
These steps drastically reduce intermittent empty-response errors during normal browsing.
For Developers / Site Owners
If you operate a site or API, preventing ERR_EMPTY_RESPONSE means ensuring the server never accepts a connection without sending a proper HTTP response.
-
Always return a valid status line + headers before exit
-
Tune upstream timeouts (Nginx, HAProxy, Cloudflare, ELB)
-
Ensure app workers don’t crash before writing output
-
Configure keep-alive and buffer limits correctly
-
Serve a complete TLS handshake and avoid half-open sessions
-
Monitor for 0-byte responses at the reverse proxy layer
If your origin is slow, overloaded, or drops idle connections, Chrome will immediately show ERR_EMPTY_RESPONSE.
Why Prevention Matters
Most casual fixes (cache clear, restart browser, reboot router) only treat the symptom.
Preventative measures fix the cause — stale connections, protocol fallback failures, or server response drops.
This is why users see this error “randomly” — but it’s not random at all: it’s Chrome protecting you from a broken or incomplete response stream.
Frequently Asked Questions (FAQ)
1. What does “No data received” / ERR_EMPTY_RESPONSE mean in Chrome?
It means Chrome successfully connected to the website, but the server (or network) returned no data at all. The connection was opened, but no HTTP response body or headers were delivered. This is why Chrome reports an “empty response” instead of a 4xx/5xx error.
2. Why does this error happen only in Chrome but not other browsers?
Chrome uses its own network stack and socket pool. If Chrome is holding a stale TCP/QUIC session, it might try to reuse a broken connection and fail. Other browsers start a fresh handshake and seem to work normally, which confuses users into thinking the site is fine.
3. Does this error mean the website is down?
Not always. The site might be reachable but not sending a response. This can happen due to backend timeouts, reverse proxy issues, or CDN errors. It is also common on unstable networks where the response packets never make it back to Chrome.
4. Can a VPN or proxy cause ERR_EMPTY_RESPONSE?
Yes. If the VPN or proxy drops the return packet stream or times out mid-transfer, Chrome receives an open connection followed by nothing — which triggers this specific error. Disabling the VPN often resolves it instantly.
5. Why does the site load on mobile data but not on Wi-Fi?
That indicates a network-level issue such as DNS filtering, captive portal interference, ISP proxying, or MTU packet loss on that Wi-Fi network. Switching networks is a quick diagnostic for this.
6. Is this related to HTTP/3 or QUIC?
In many modern cases, yes. QUIC runs over UDP/443, and if a router or firewall blocks or degrades UDP packets, Chrome may never fall back properly — producing ERR_EMPTY_RESPONSE. Disabling QUIC is often a working fix.
7. When is it definitely a server problem?
If the error occurs on multiple devices, across multiple networks, and persists after clearing Chrome’s socket pool, the server is accepting the connection but not sending a valid HTTP response. This is especially common with Nginx timeouts or Node.js process crashes.
Conclusion
The “No data received” / ERR_EMPTY_RESPONSE error in Google Chrome occurs when the browser successfully reaches the server but receives no data back in return. This makes it very different from DNS or SSL errors — the connection was opened, but the response never arrived. That’s why the fix depends on which layer failed: the browser (stale sockets), the network (proxy/DNS/VPN interference), or the server (upstream timeout or empty response).
In most user-side cases, the issue is resolved by flushing Chrome’s socket pool, clearing DNS host cache, disabling QUIC/HTTP3, or removing VPN/proxy interference. When the error persists across multiple devices or networks, the problem is almost always server-side — usually caused by a reverse proxy, CDN timeout, or backend failure that causes Chrome to receive a 0-byte response instead of a valid HTTP payload.
Ultimately, the key to fixing this error is understanding that Chrome did connect — it just didn’t receive anything in return. By focusing on the transport path and response layer rather than only “clearing cache,” you resolve the root cause instead of temporarily hiding the symptom.
