Skip to main content
0x10

NO_VIABLE_PATH

RFC 9000 §20

QUIC NO_VIABLE_PATH (0x10) is sent when there is no viable network path to the peer. The endpoint has lost all network connectivity or all available paths have failed validation. This code is specifically for path-level failures in QUIC's connection migration feature.

Code

0x10

Decimal

16

Standard

RFC 9000 §20

Description

QUIC supports connection migration – maintaining a logical connection while the underlying network path changes (e.g., a mobile device switching from WiFi to cellular). If all candidate paths fail validation (via PATH_CHALLENGE/PATH_RESPONSE) and the original path is also gone, the endpoint sends NO_VIABLE_PATH. Path validation works by sending PATH_CHALLENGE frames with random data on the candidate path and expecting PATH_RESPONSE frames echoing the challenge data back. If no path passes validation, NO_VIABLE_PATH terminates the connection. This error is most relevant for mobile QUIC clients that implement connection migration. On desktop connections that do not migrate, QUIC simply times out (without sending any error) when connectivity is lost. NO_VIABLE_PATH appears when migration is attempted but fails.

Common Causes

  • Mobile client switched networks and all candidate paths failed validation
  • All network interfaces went down during attempted connection migration
  • PATH_CHALLENGE responses never received on any available path
  • Network change resulted in no routable path to the server