# Chrome: This page isn’t working — example.com is unable to handle this request. ERR_HTTP2_PROTOCOL_ERROR

**Code:** `ERR_HTTP2_PROTOCOL_ERROR` · **Category:** Browser · **Seen on:** Chrome, Edge, Nginx, Apache

The HTTP/2 connection broke a protocol rule — a server, proxy or CDN sent an invalid or oversized frame/header, or closed the stream abnormally.

## Meaning

Seen with oversized headers or cookies, buggy proxies, mismatched `Content-Length`, and PHP/Nginx or Apache modules that corrupt responses. Visitors can try clearing cookies; owners should inspect the response with `curl --http2 -v` and the web server logs. Temporarily disabling HTTP/2 confirms the diagnosis.

## Common causes

- Oversized response headers or cookies
- Wrong or duplicate `Content-Length` / `Transfer-Encoding`
- Proxy/CDN or WAF bug with HTTP/2
- Server crash while streaming a response
- Outdated HTTP/2 module

## Quick fix

1. Clear cookies for the site and reload
2. Owners: test with `curl --http2 -v` vs `--http1.1`
3. Disable HTTP/2 temporarily or update the web server/proxy

## Detailed fix by platform

### Nginx

1. Test without HTTP/2: remove `http2` from the `listen 443 ssl http2;` line, reload, and see if the error stops

### Apache

1. `Protocols http/1.1` in the vhost disables HTTP/2 for a test

### Linux

1. `curl --http2 -sv https://example.com -o /dev/null` and compare with `curl --http1.1 -sv ...`

## How to diagnose

1. **Protocol** — Does HTTP/1.1 work?
2. **Headers** — Are headers or cookies very large?
3. **Logs** — Server error at that time?

---
Source: [WhatIsMyError](https://whatismyerror.com/errors/browser/err-http2-protocol-error)
