KEY_UPDATE_ERROR
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