Error Codes Wiki

HTTP/2 vs HTTP/3 Protocol Errors — QUIC, Stream, and Connection Failures

Error5xx server error

Overview

Troubleshoot HTTP/2 and HTTP/3 protocol errors including stream resets, GOAWAY frames, QUIC connection failures, and protocol downgrade issues.

Key Details

  • HTTP/2 uses binary framing over TCP with multiplexed streams on a single connection
  • HTTP/3 uses QUIC protocol over UDP, providing faster connection setup and better handling of packet loss
  • RST_STREAM errors in HTTP/2 indicate a specific stream was terminated (REFUSED_STREAM, CANCEL, etc.)
  • GOAWAY frame signals the server is shutting down — no new streams accepted on this connection
  • ERR_HTTP2_PROTOCOL_ERROR in browsers often indicates server misconfiguration or incompatible proxy

Common Causes

  • Server or load balancer not properly supporting HTTP/2 multiplexing
  • Proxy or CDN downgrading HTTP/2 to HTTP/1.1 incorrectly
  • Firewall or middleware corrupting HTTP/2 binary frames
  • QUIC/UDP traffic blocked by network firewall (HTTP/3 falls back to HTTP/2)
  • Server sending frames that exceed the client's MAX_FRAME_SIZE setting

Steps

  1. 1Check the browser DevTools Network tab for Protocol column to verify HTTP/2 or h3 is in use
  2. 2Try disabling HTTP/3 in browser settings to test if QUIC is the issue (chrome://flags > QUIC)
  3. 3Test with curl --http2 or --http3 to isolate protocol-specific issues
  4. 4Check server configuration: ensure ALPN negotiation includes h2 and h3
  5. 5Verify intermediate proxies and load balancers support and forward HTTP/2 correctly
  6. 6Check firewall rules to ensure UDP port 443 is open for QUIC/HTTP/3 traffic

Tags

http2http3quicprotocol-errorstream-reset

Related Items

More in 5xx Server Error

Frequently Asked Questions

UDP avoids TCP's head-of-line blocking issue. QUIC builds reliability on top of UDP, allowing independent stream handling so a lost packet in one stream does not block others.