|
| 1 | +--- |
| 2 | +pcx_content_type: troubleshooting |
| 3 | +title: Troubleshoot protocol issues |
| 4 | + |
| 5 | +--- |
| 6 | + |
| 7 | +This guide covers common HTTP/2 and HTTP/3 issues, including origin incompatibility, multiplexing errors, and browser errors, with steps to diagnose and resolve them. |
| 8 | + |
| 9 | +## H2 to Origin - Origin incompatibility |
| 10 | + |
| 11 | +- The origin's `max_concurrent_streams` is negotiated during the handshake process. |
| 12 | +- If a `GOAWAY(0)` is received, it is likely due to a server restart or another reason causing the server to refuse new streams. |
| 13 | +- For more information, refer to [RFC 9113 - SETTINGS_MAX_CONCURRENT_STREAMS](https://datatracker.ietf.org/doc/html/rfc9113). |
| 14 | + |
| 15 | +## H2 Multiplexing - Origin incompatibility/issues |
| 16 | + |
| 17 | +- Multiplexing issues can arise due to incorrect server configurations. |
| 18 | +- Use [netlogs](https://www.chromium.org/developers/design-documents/network-stack/netlog/) to identify `SETTINGS_MAX_CONCURRENT_STREAMS` violations or unexpected `GOAWAY` frames. |
| 19 | +- For more information, refer to [Stream Concurrency Issues](https://datatracker.ietf.org/doc/html/rfc9113#name-stream-concurrency). |
| 20 | + |
| 21 | +## Generic browser errors |
| 22 | + |
| 23 | +Common browser errors include: |
| 24 | + |
| 25 | +- `ERR_HTTP2_PROTOCOL_ERROR` |
| 26 | +- `ERR_HTTP3_PROTOCOL_ERROR` |
| 27 | +- `ERR_QUIC_PROTOCOL_ERROR` |
| 28 | + |
| 29 | +These errors do not necessarily indicate a protocol-level issue. Follow these steps: |
| 30 | + |
| 31 | +1. Attempt reproduction using HTTP/1.1. |
| 32 | +2. If the issue persists in HTTP/1.1, address the underlying error before testing HTTP/2 or HTTP/3. |
| 33 | +3. If the issue does not persist, analyze netlogs for HTTP/2 or HTTP/3-specific issues. |
| 34 | + |
| 35 | +For more information, refer to [Chromium URL Request Header](https://chromium.googlesource.com/chromium/src/+/HEAD/net/url_request/url_request.h). |
0 commit comments