ERR_QUIC_PROTOCOL_ERROR: Meaning & Fix in Chrome and Edge

Key takeaway

ERR_QUIC_PROTOCOL_ERROR means Chrome's QUIC (HTTP/3) connection to the site broke, usually partway through loading. Chrome retries over a normal TCP connection on its own unless the site had already started answering, so you see the error when something lets QUIC start and then breaks it: a VPN, a firewall or security suite, an unstable network, or the site's own HTTP/3 setup. Reload first; if it keeps happening, try another network, then turn QUIC off at chrome://flags/#enable-quic (edge://flags/#enable-quic in Edge).

Check it now

ERR_QUIC_PROTOCOL_ERROR fix guide showing QUIC protocol error in Chrome and step-by-step solutions
ERR_QUIC_PROTOCOL_ERROR fix guide showing QUIC protocol error in Chrome and step-by-step solutions
Start reading
  1. What Is ERR_QUIC_PROTOCOL_ERROR?
  2. What Is QUIC and Why Does Chrome Use It?
  3. What Causes ERR_QUIC_PROTOCOL_ERROR?
  4. Fix 1: Disable the QUIC Protocol in Chrome
  5. Fix 2: Reset Chrome's Connections
  6. Fix 3: Disable Browser Extensions
  7. Fix 4: Check Firewall and Antivirus Settings
  8. Fix 5: Check Your VPN
  9. Fix 6: Look for a Hidden Proxy or Traffic Filter
  10. Fix 7: Update Chrome to the Latest Version
  11. Server-Side QUIC Issues (For Website Owners)
  12. Should You Keep QUIC Enabled or Disable It?
  13. Frequently Asked Questions

What Is ERR_QUIC_PROTOCOL_ERROR?

ERR_QUIC_PROTOCOL_ERROR means Chrome's QUIC connection to the website broke, usually after the site had started sending the page. QUIC is the UDP-based transport behind HTTP/3. Chrome shows its generic "This site can't be reached" page ("The webpage at … might be temporarily down or it may have moved permanently to a new web address") with the code underneath; Chromium defines it as error -356, "There is a QUIC protocol error".

Chrome normally recovers by itself: when a QUIC request fails, it retries the request over an ordinary TCP connection, unless the server had already started answering (http_network_transaction.cc). So a network that blocks QUIC completely doesn't cause this error; a network, VPN or server that lets QUIC start and then breaks it does.

It appears only in Chromium-based browsers: Chrome, Edge, Opera, Brave and Vivaldi. It's a different failure from ERR_SSL_PROTOCOL_ERROR (a broken TLS handshake) and ERR_NETWORK_CHANGED (your connection switched). Reload first, since the retry often works; if the error keeps coming back, the fixes below start with the most reliable one, turning QUIC off, then work through each cause.

Does the site advertise HTTP/3? Check its Alt-Svc header

What Is QUIC and Why Does Chrome Use It?

QUIC was developed by Google, first announced in 2013, and standardized by the IETF as RFC 9000 in 2021. It replaces TCP + TLS with a single encrypted protocol on top of UDP, and it's the transport behind HTTP/3 (Android's Private DNS also uses it for DNS over HTTP/3: see what is private DNS).

A TCP + TLS 1.3 connection needs two round trips before the first request; QUIC needs one, and can resume in zero. On 7 October 2020 Google announced that 25% of Chrome Stable users were already on IETF QUIC (draft h3-29). Google measured Search latency down over 2%, YouTube rebuffering down over 9%, and throughput up over 3% on desktop and 7% on mobile (Chromium Blog).

Chrome only uses QUIC when a site advertises it, in an Alt-Svc header or a DNS HTTPS record. We checked 20 of the most-visited sites on 26 October 2026: 10 advertise HTTP/3 in their Alt-Svc header (Google, YouTube, Facebook, Instagram, Amazon, LinkedIn, Bing, WhatsApp, Cloudflare and OpenAI).

FeatureTCP + TLS 1.3QUIC
Transport layerTCP (kernel)UDP (userspace)
Connection setup2 round trips (TCP, then TLS)1 round trip (0-RTT on resumption)
Head-of-line blockingYes — one lost packet blocks all streamsNo — streams are independent
Connection migrationNo — new IP = new connectionYes — survives Wi-Fi ↔ mobile switch
EncryptionTLS 1.3 on topTLS 1.3 built-in (always encrypted)
PortTCP 443UDP 443

What Causes ERR_QUIC_PROTOCOL_ERROR?

Every cause is the same pattern: QUIC got started, then something broke it.

  • A network that lets QUIC start, then breaks it — firewalls, routers or ISP equipment that drop or time out UDP traffic partway through a transfer. (A network that blocks UDP 443 completely just makes Chrome use TCP, with no error.)
  • A VPN that drops UDP mid-connection — when a VPN reconnects, switches server or route, or times out quiet UDP flows, an open QUIC connection dies. (A path too small for QUIC fails during the handshake instead, where Chrome just uses TCP.)
  • Security software that inspects traffic — antivirus or firewall "web protection" that intercepts connections can break QUIC streams.
  • An unstable connection — weak Wi-Fi, or switching networks in the middle of a download.
  • The website's HTTP/3 setup — a server or CDN that advertises HTTP/3 but whose QUIC stack fails mid-response. Then everyone sees the error on that one site, on every network: the Website Down Checker shows whether it fails for others too.
  • Not a cause: a proxy — Chrome only uses QUIC on direct connections, so with a proxy set, every request goes over TCP.

Fix 1: Disable the QUIC Protocol in Chrome

The most reliable fix: with QUIC off, Chrome uses HTTP/2 (or HTTP/1.1) over TCP for every site. Pages still load; you give up QUIC's speed gains, which Google measured at around 2% faster Search and 9% less YouTube rebuffering.

For IT admins: the Chrome and Edge policy QuicAllowed set to false turns QUIC off on managed devices, without touching chrome://flags.

Disable QUIC in Google Chrome

Follow these steps to disable QUIC in Chrome on Windows, Mac, or Linux.

text
1. Open Chrome and type in the address bar:
   chrome://flags/#enable-quic

2. Find "Experimental QUIC protocol"

3. Change the dropdown from "Default" to "Disabled"

4. Click "Relaunch" at the bottom to restart Chrome

5. Verify: visit the website that showed the error

Disable QUIC in Microsoft Edge

Since Edge is Chromium-based, the process is almost identical.

text
1. Open Edge and type in the address bar:
   edge://flags/#enable-quic

2. Find "Experimental QUIC protocol"

3. Change to "Disabled"

4. Click "Restart" to apply

Disable QUIC in Opera & Brave

Opera and Brave use the same Chromium flags system.

text
Opera:  opera://flags/#enable-quic → Disabled → Restart
Brave:  brave://flags/#enable-quic → Disabled → Restart

Fix 2: Reset Chrome's Connections

Clearing data rarely fixes this, but resetting open connections can: Chrome then starts fresh QUIC (or TCP) connections to the site.

Flush Connections, Then Clear the Cache

Start with Flush socket pools (see the note below). If the error survives, clear the cache:

text
1. Press Ctrl+Shift+Delete (Windows/Linux) or Cmd+Shift+Delete (Mac)

2. Choose More → All time for the time range

3. Tick "Cached images and files"

4. Click "Delete data" ("Delete from this device" if you're signed out)

5. Restart Chrome and try the website again

Fix 3: Disable Browser Extensions

Rarely the cause: extensions can't change QUIC itself, and "VPN" extensions in desktop Chrome are really proxies, which stop Chrome from using QUIC at all.

Open the site in an Incognito window (Ctrl+Shift+N), where extensions are off unless you allowed them. If it loads there, turn your extensions off one by one at chrome://extensions/ to find the one responsible.

Fix 4: Check Firewall and Antivirus Settings

A firewall that blocks UDP port 443 outright doesn't cause this error: Chrome simply uses TCP. The trouble is a firewall or security suite that lets QUIC start and then drops or inspects it.

Either allow outbound UDP 443 fully, or block it fully. Here's how to check the common setups.

Windows Firewall

Windows Defender Firewall allows outbound traffic by default, and a block rule always beats an allow rule, so look for a block rule someone added and turn it off. Run PowerShell as Administrator:

powershell
# List enabled outbound block rules that cover UDP (or any protocol)
Get-NetFirewallRule -Direction Outbound -Action Block -Enabled True |
  Where-Object { ($_ | Get-NetFirewallPortFilter).Protocol -in 'UDP', 'Any' } |
  Select-Object Name, DisplayName

# Turn off the rule that blocks UDP 443 (use its Name from the list)
Disable-NetFirewallRule -Name '<Name>'

macOS Firewall

macOS's built-in firewall only controls incoming connections, so it can't block QUIC. If you run an outbound firewall such as Little Snitch or LuLu, check its rules for Chrome's UDP traffic to port 443.

Router-Level Firewalls

The quickest test: connect to your phone's mobile hotspot and load the site. If the error disappears, your router, ISP equipment or office firewall is the cause.

Then look in the router's admin page (usually 192.168.1.1 or 192.168.0.1) for firewall, "SPI" or security settings that limit UDP, and update its firmware.

Fix 5: Check Your VPN

A VPN tunnels all your traffic, UDP included, so QUIC normally passes through it. Trouble starts when the tunnel itself is unstable: a reconnect, a server or route change, or a VPN that times out quiet UDP flows kills open QUIC connections.

Disconnect the VPN and reload. If the error goes, try these:

  • Switch the VPN server or protocol — a more stable server or another protocol often stops the drops
  • Corporate VPNs — many company networks block QUIC on purpose so they can inspect HTTPS; follow IT's setup and turn QUIC off if errors persist
  • Leave QUIC off while on the VPN — Fix 1 works with every VPN, because Chrome then uses TCP

Fix 6: Look for a Hidden Proxy or Traffic Filter

A proxy setting doesn't cause this error: Chrome only uses QUIC on direct connections, so with a proxy every request goes over TCP. What can look like a proxy, though, is security or VPN software that filters traffic at the network level without a proxy setting.

If the error appears on every network but only on this computer, turn off such software ("web shield", "network protection", a VPN app that runs in the background) one at a time and reload.

Fix 7: Update Chrome to the Latest Version

Chrome's QUIC code is updated regularly, and updates fix bugs in Chrome's side of the connection. Update Chrome (or Edge, Opera, Brave) before you change anything else on a computer that's been offline for a while.

text
1. Open Chrome → click ⋮ (three dots) → Help → About Google Chrome

2. Chrome will automatically check for updates

3. If an update is available, click "Relaunch" to apply

4. After updating, verify your Chrome version:
   chrome://version
   
   Look for the version number 

Server-Side QUIC Issues (For Website Owners)

If you are a website owner and your visitors report ERR_QUIC_PROTOCOL_ERROR, the issue may be on your server. Here are the most common server-side causes.

  • Cloudflare HTTP/3 setting — if visitors report the error and you use Cloudflare, check Speed > Settings > Protocol Optimization > HTTP/3 and test with it off for a while
  • Your own server's HTTP/3 — nginx has had HTTP/3 since 1.25.0 (listen 443 quic reuseport; plus an Alt-Svc header); LiteSpeed and Caddy support it too. Make sure the UDP listener on port 443 is reachable and your QUIC stack is up to date. QUIC always uses TLS 1.3: the SSL Checker shows whether your server offers it
  • Load balancers that don't forward UDP — application load balancers such as AWS ALB only carry TCP. If you advertise h3 in Alt-Svc without forwarding UDP 443, Chrome marks QUIC as broken for your site for 5 minutes, then retries, doubling the wait up to 2 days, and races TCP each time: remove the header or use a UDP-capable (layer 4) balancer
bash
# Test HTTP/3 only, with no fallback (needs a curl built with HTTP/3)
curl --http3-only -sI https://your-domain.com

# Check something listens on UDP 443 (as root; firewalls are separate)
ss -ulnp 'sport = :443'

# Verify Alt-Svc header (tells browsers QUIC is available)
curl -sI https://your-domain.com | grep -i alt-svc
# Expected: alt-svc: h3=":443"; ma=86400

Should You Keep QUIC Enabled or Disable It?

Turning QUIC off is a safe fix, but on a healthy network you give up real speed. A practical way to decide:

Keep QUIC on at home, on mobile data and on any network where the error doesn't appear. Google's own data shows faster Search, less video rebuffering and higher throughput with it, and QUIC keeps connections alive when your phone switches from Wi-Fi to mobile data.

Turn QUIC off on a network or VPN where the error keeps coming back. Chrome then uses HTTP/2 (or HTTP/1.1) over TCP, which every network handles; most people won't notice the difference on a good broadband line.

When the same kind of failure happens over HTTP/2 instead of QUIC, Chrome shows ERR_HTTP2_PROTOCOL_ERROR, which has its own causes and fixes.

ScenarioRecommendationReason
Home network, no errorsKeep QUIC onFull speed benefits
Mobile data (4G/5G)Keep QUIC onConnections survive network switches
Work or school network with errorsTurn QUIC off (or ask IT to block it fully)A firewall is interfering with UDP 443
VPN with errorsTurn QUIC off, or try another VPN server or protocolAn unstable tunnel drops QUIC connections
Behind a proxyNo change neededChrome doesn't use QUIC through a proxy

Does the Site Advertise HTTP/3?

Check any site's response headers with DNS Robot's free HTTP Header Checker: an Alt-Svc header with h3 means browsers will try QUIC.

Sources

  1. net_error_list.h (QUIC_PROTOCOL_ERROR -356), Chromium
  2. http_network_transaction.cc (retry without QUIC), Chromium
  3. Chrome is deploying HTTP/3 and IETF QUIC (2020-10-07), Chromium Blog
  4. RFC 9000: QUIC (§14, datagram size), IETF
  5. HTTP/3 (with QUIC), Cloudflare

Frequently Asked Questions

What does ERR_QUIC_PROTOCOL_ERROR mean?

Chrome's QUIC (HTTP/3) connection to the site broke, usually after the site had started answering, so Chrome couldn't quietly retry over TCP. Chromium defines it as error -356, "There is a QUIC protocol error". It's a connection problem, not a fault in the page.

How do I fix ERR_QUIC_PROTOCOL_ERROR in Chrome?

Reload first: Chrome often retries over TCP. If it keeps happening, disconnect any VPN and try another network. If the error only goes away there, open chrome://flags/#enable-quic, set Experimental QUIC protocol to Disabled and relaunch Chrome.

How do I fix ERR_QUIC_PROTOCOL_ERROR in Microsoft Edge?

The same way: open edge://flags/#enable-quic, set Experimental QUIC protocol to Disabled and restart Edge. Edge uses Chromium's networking, so the causes (a VPN, a firewall, an unstable network or the site's HTTP/3) are the same as in Chrome.

Does disabling QUIC slow down browsing?

A little, mostly on slow or mobile connections. Google measured QUIC cutting Search latency by over 2% and YouTube rebuffering by over 9% compared with TCP. On a good broadband line most people won't notice it's off.

Why does the error only happen on some websites?

Chrome only uses QUIC with sites that advertise HTTP/3, in an Alt-Svc header or a DNS HTTPS record, such as Google, YouTube and Facebook. If only those sites fail, your network or VPN is breaking QUIC; if one site fails for everyone on every network, its HTTP/3 setup is broken.

Can a VPN cause ERR_QUIC_PROTOCOL_ERROR?

Yes, when the tunnel is unstable: a VPN that reconnects, switches route or times out quiet UDP flows kills open QUIC connections mid-transfer. Try another VPN server or protocol, or turn QUIC off while you use the VPN.

What does "Failed to load resource: net::ERR_QUIC_PROTOCOL_ERROR" mean?

It's the same error for one file on the page, such as an image or script, that broke mid-download over QUIC. If it happens repeatedly, the fixes are the same: test another network, check your VPN, or turn QUIC off.

Is ERR_QUIC_PROTOCOL_ERROR my network or the website?

Load the site on mobile data. If it works there, your network, VPN or security software is the cause. If it fails everywhere and for other people too, the site's HTTP/3 setup is broken and only its owner can fix it.

Is ERR_QUIC_PROTOCOL_ERROR a security risk?

No. It's a failed connection, not a breach. QUIC is always encrypted with TLS 1.3, so nothing was sent unprotected; the connection simply stopped.

How do I check if a website supports QUIC?

Look for an Alt-Svc header with h3=":443" (DNS Robot's HTTP Header Checker, or curl -sI https://example.com | grep -i alt-svc) or an HTTPS DNS record with alpn=h3 (dig example.com HTTPS). In Chrome, DevTools' Network tab shows h3 in the Protocol column for QUIC requests.

About the author

Shaik Vahid

Founder of DNS Robot. Vahid spent years in web hosting support fixing domains, DNS records, SSL certificates and email delivery for customers. He builds DNS Robot's tools and writes these guides from the errors people actually hit.

HTTP Header Checker

Response headers exactly as sent, with a Mozilla Observatory security grade