---
title: "ERR_HTTP2_PROTOCOL_ERROR: causes and how to fix it"
description: "The HTTP/2 connection broke a protocol rule and the browser aborted the stream. Usually caused by a server or proxy with a buggy HTTP/2 implementation, or an…"
canonical: "https://lemwatch.com/errors/err-http2-protocol-error"
source: "https://lemwatch.com"
---

# ERR_HTTP2_PROTOCOL_ERROR: The HTTP/2 stream failed

> The HTTP/2 connection broke a protocol rule and the browser aborted the stream. Usually caused by a server or proxy with a buggy HTTP/2 implementation, or an oversized response header.

## Short answer

 The HTTP/2 connection broke a protocol rule and the browser aborted the stream. Usually caused by a server or proxy with a buggy HTTP/2 implementation, or an oversized response header.

## What ERR_HTTP2_PROTOCOL_ERROR means

 HTTP/2 multiplexes streams over one connection and is strict about framing. A violation kills the stream — and sometimes the whole connection — with no HTTP status returned.

## Causes and fixes, most likely first

- Response headers exceed the server's HTTP/2 header table limits. Reduce header size, especially large cookies and verbose CSP headers, or raise the server's header limits.
- A proxy or WAF between the browser and origin has a buggy HTTP/2 implementation. Test with HTTP/1.1 forced. If the error disappears, the intermediary's HTTP/2 stack is at fault — update it or disable HTTP/2 on that hop.

## How to stop it happening again

- Keep response headers small, and test the site over both HTTP/1.1 and HTTP/2 after any proxy or CDN change.

## Check your own domain

 An external probe records whether the response completes over the negotiated protocol, and whether the failure is consistent.

## Frequently asked questions

### Should I just disable HTTP/2?

 Only as a diagnostic. It confirms where the fault is, but HTTP/2 is worth keeping — fix the header sizes or the intermediary instead.


## Related

- [All website error codes](https://lemwatch.com/errors)
- [ERR_EMPTY_RESPONSE](https://lemwatch.com/errors/err-empty-response)
- [ERR_CONNECTION_RESET](https://lemwatch.com/errors/err-connection-reset)
- [ERR_QUIC_PROTOCOL_ERROR](https://lemwatch.com/errors/err-quic-protocol-error)
- [HTTP 431](https://lemwatch.com/http-status-codes/431)
- [Free Uptime & response check](https://lemwatch.com/tools/website-uptime)
- [ERR_INTERNET_DISCONNECTED: The device is not connected to the internet](https://lemwatch.com/errors/err-internet-disconnected)
- [Lemwatch pricing](https://lemwatch.com/pricing)
