What Is ERR_HTTP2_PROTOCOL_ERROR and How Do You Fix It?

Sunucun 4 min read

ERR_HTTP2_PROTOCOL_ERROR is an error showing that the browser received a response that breaks the rules or was cut off while talking to a site over the HTTP/2 protocol. Chrome then shows the code ERR_HTTP2_PROTOCOL_ERROR on the “This page isn’t working” or “This site can’t be reached” screen; sometimes the page opens but an image, script or file download stops with this error. In this guide we explain the causes and the fixes.

Illustration: What Is ERR_HTTP2_PROTO…

What Does ERR_HTTP2_PROTOCOL_ERROR Mean?

HTTP/2 is a protocol that carries several requests at the same time over a single connection and sends data in pieces called “frames”. The browser shows this error when one of the frames from the server (or from a proxy, CDN or security software in between) does not follow the protocol, or when a stream is reset unexpectedly. The problem is usually on the site’s side, but security software on the computer can also cause it.

Causes of the Error

  • A response cut off midway: If the server closes the stream before finishing the response (for example when the application crashes or times out), the browser sees a protocol error.
  • A full disk: Servers such as Nginx write large responses to temporary files; if the disk is full, the response can be left incomplete.
  • Invalid response headers: Headers containing characters not allowed in HTTP/2, or headers that exceed the size limit.
  • Proxy or CDN mismatch: Misconfiguration between the backend server and the proxy (for example a wrong Content-Length value).
  • Security software: Antivirus or corporate proxy software that inspects HTTPS traffic can break the HTTP/2 connection.
  • Browser extensions or an old browser: Extensions that modify responses, and outdated versions.

How to Fix It as a Visitor

  1. Reload the page and try an incognito window: If it opens in incognito, clear the cache and turn extensions off one by one.
  2. Update Chrome: Check for updates on the chrome://settings/help page.
  3. Test your security software: Briefly turn off the antivirus HTTPS scanning and try again.
  4. Try another network and browser: If the error appears everywhere, the problem is on the site and only the site owner can fix it.

How to Fix It as a Site Owner

1. Look at the Error Logs

The web server’s error log (for Nginx usually /var/log/nginx/error.log) often shows the cause directly. Look for “No space left on device”, “upstream prematurely closed connection” or errors writing temporary files.

2. Check Disk Space

Check disk usage with the df -h command. If the disk is full, clean up old log files and backups; also make sure Nginx can write to its temporary file folders (proxy_temp_path, fastcgi_temp_path).

3. Compare HTTP/2 and HTTP/1.1 Responses

Test the problem URL with each protocol separately. If it works over HTTP/1.1 but fails over HTTP/2, examine the headers and whether the response completes:

curl -sv --http2 -o /dev/null https://yourdomain.com/problem-page
curl -sv --http1.1 -o /dev/null https://yourdomain.com/problem-page

4. Review Headers, Proxy and CDN Settings

Make sure the headers your application sends contain no invalid characters or oversized cookies. If you use a reverse proxy, check that the Content-Length value from the backend matches the real response size. If you use a CDN, try bypassing it temporarily and connecting directly to the server to isolate the problem.

5. Update the Web Server

Older versions of Nginx, Apache and LiteSpeed can have HTTP/2 bugs. Keep the server software and OpenSSL up to date. Turning off HTTP/2 temporarily until you find a permanent fix is an option, but it reduces performance and does not solve the underlying cause.

For a similar error on QUIC/HTTP3 connections, see our guide on ERR_QUIC_PROTOCOL_ERROR, and for cases where the connection is closed without a response, see ERR_CONNECTION_CLOSED. For full access to server logs and the web server configuration, you can use a VDS server with root access.

Conclusion

ERR_HTTP2_PROTOCOL_ERROR shows that the browser received a response over HTTP/2 that breaks the rules or was cut off. As a visitor, check extensions, security software and the browser version. If you own the site, look at the error logs, disk space, headers and proxy configuration.

Categories

Latest guides