Skip to main content
0x0e

KEY_UPDATE_ERROR

RFC 9000 §20

QUIC KEY_UPDATE_ERROR (0x0e) is sent when a problem occurs with packet protection key updates. QUIC rotates its packet encryption keys periodically (Key Phase bit) to provide forward secrecy within a connection. If the key update process fails, the connection is terminated.

Code

0x0e

Decimal

14

Standard

RFC 9000 §20

Description

QUIC performs in-connection key updates to limit the amount of data encrypted under any single key set, providing forward secrecy within a long-lived connection. Key updates are triggered by either endpoint flipping the Key Phase bit in a 1-RTT packet. KEY_UPDATE_ERROR is generated when: a key update is initiated before a previous one completed, the new keys cannot be derived, or a packet is received that cannot be decrypted with either the current or next key set (indicating a key phase desync). Key update failures are rare in correct implementations. They indicate a bug in the QUIC implementation's key schedule or state machine, or an extremely unusual network condition where many packets are reordered across a key phase boundary.

Common Causes

  • Key update initiated before the previous update completed
  • Packet received that matches neither current nor next key set
  • Key derivation failure during update
  • QUIC implementation bug in key phase state tracking