Skip to content

MoQT draft-11 Error Codes

MoQT draft-11 assigns 65 code points across 7 registries — Termination, SUBSCRIBE_ERROR, SUBSCRIBE_DONE, FETCH_ERROR, ANNOUNCE_ERROR, SUBSCRIBE_ANNOUNCES_ERROR and Closing Subgroup Streams — plus 4 Object Status values, which are a separate family and are never counted with the rest. Of the 65, 65 are assignments and 0 are reserved.

Every row below was read out of draft-ietf-moq-transport-11 by the same extraction the moqtap Rust codec's conformance tests run against. Nothing here is transcribed by hand. The provenance section gives the hash of the document it came from.

Added

  • 0x7 TOO_MANY_REQUESTS (Termination)
  • 0x8 INVALID_PATH (Termination)
  • 0x9 MALFORMED_PATH (Termination)
  • 0x13 AUTH_TOKEN_CACHE_OVERFLOW (Termination)
  • 0x14 DUPLICATE_AUTH_TOKEN_ALIAS (Termination)
  • 0x15 VERSION_NEGOTIATION_FAILED (Termination)
  • 0x10 MALFORMED_AUTH_TOKEN (SUBSCRIBE_ERROR)
  • 0x11 UNKNOWN_AUTH_TOKEN_ALIAS (SUBSCRIBE_ERROR)
  • 0x12 EXPIRED_AUTH_TOKEN (SUBSCRIBE_ERROR)
  • 0x6 NO_OBJECTS (FETCH_ERROR)
  • 0x7 INVALID_JOINING_SUBSCRIBE_ID (FETCH_ERROR)
  • 0x10 MALFORMED_AUTH_TOKEN (FETCH_ERROR)
  • 0x11 UNKNOWN_AUTH_TOKEN_ALIAS (FETCH_ERROR)
  • 0x12 EXPIRED_AUTH_TOKEN (FETCH_ERROR)
  • 0x10 MALFORMED_AUTH_TOKEN (ANNOUNCE_ERROR)
  • 0x11 UNKNOWN_AUTH_TOKEN_ALIAS (ANNOUNCE_ERROR)
  • 0x12 EXPIRED_AUTH_TOKEN (ANNOUNCE_ERROR)
  • 0x5 NAMESPACE_PREFIX_OVERLAP (SUBSCRIBE_ANNOUNCES_ERROR)
  • 0x10 MALFORMED_AUTH_TOKEN (SUBSCRIBE_ANNOUNCES_ERROR)
  • 0x11 UNKNOWN_AUTH_TOKEN_ALIAS (SUBSCRIBE_ANNOUNCES_ERROR)
  • 0x12 EXPIRED_AUTH_TOKEN (SUBSCRIBE_ANNOUNCES_ERROR)
  • 0x0 INTERNAL_ERROR (Closing Subgroup Streams)
  • 0x1 CANCELLED (Closing Subgroup Streams)
  • 0x2 DELIVERY_TIMEOUT (Closing Subgroup Streams)
  • 0x3 SESSION_CLOSED (Closing Subgroup Streams)

Renamed

  • 0x4 INVALID_REQUEST_ID — was DUPLICATE_TRACK_ALIAS in draft-10 (Termination)
  • 0x5 DUPLICATE_TRACK_ALIAS — was PARAMETER_LENGTH_MISMATCH in draft-10 (Termination)
  • 0x6 KEY_VALUE_FORMATTING_ERROR — was TOO_MANY_SUBSCRIBES in draft-10 (Termination)

draft-11 adds the Closing Subgroup Streams registry.

The application MAY use any error message and SHOULD use a relevant code, as defined below:

Code Reason Normalized name Defined in
0x0 No Error NO_ERROR §3.4
0x1 Internal Error INTERNAL_ERROR §3.4
0x2 Unauthorized UNAUTHORIZED §3.4
0x3 Protocol Violation PROTOCOL_VIOLATION §3.4
0x4 Invalid Request ID INVALID_REQUEST_ID §3.4
0x5 Duplicate Track Alias DUPLICATE_TRACK_ALIAS §3.4
0x6 Key-Value Formatting Error KEY_VALUE_FORMATTING_ERROR §3.4
0x7 Too Many Requests TOO_MANY_REQUESTS §3.4
0x8 Invalid Path INVALID_PATH §3.4
0x9 Malformed Path MALFORMED_PATH §3.4
0x10 GOAWAY Timeout GOAWAY_TIMEOUT §3.4
0x11 Control Message Timeout CONTROL_MESSAGE_TIMEOUT §3.4
0x12 Data Stream Timeout DATA_STREAM_TIMEOUT §3.4
0x13 Auth Token Cache Overflow AUTH_TOKEN_CACHE_OVERFLOW §3.4
0x14 Duplicate Auth Token Alias DUPLICATE_AUTH_TOKEN_ALIAS §3.4
0x15 Version Negotiation Failed VERSION_NEGOTIATION_FAILED §3.4

16 code points from table-1 of draft-11 (§3.4. Termination).

The application SHOULD use a relevant error code in SUBSCRIBE_ERROR, as defined below:

Code Reason Normalized name Defined in
0x0 Internal Error INTERNAL_ERROR §8.9
0x1 Unauthorized UNAUTHORIZED §8.9
0x2 Timeout TIMEOUT §8.9
0x3 Not Supported NOT_SUPPORTED §8.9
0x4 Track Does Not Exist TRACK_DOES_NOT_EXIST §8.9
0x5 Invalid Range INVALID_RANGE §8.9
0x6 Retry Track Alias RETRY_TRACK_ALIAS §8.9
0x10 Malformed Auth Token MALFORMED_AUTH_TOKEN §8.9
0x11 Unknown Auth Token Alias UNKNOWN_AUTH_TOKEN_ALIAS §8.9
0x12 Expired Auth Token EXPIRED_AUTH_TOKEN §8.9

10 code points from table-4 of draft-11 (§8.9. SUBSCRIBE_ERROR).

The application SHOULD use a relevant status code in SUBSCRIBE_DONE, as defined below:

Code Reason Normalized name Defined in
0x0 Internal Error INTERNAL_ERROR §8.12
0x1 Unauthorized UNAUTHORIZED §8.12
0x2 Track Ended TRACK_ENDED §8.12
0x3 Subscription Ended SUBSCRIPTION_ENDED §8.12
0x4 Going Away GOING_AWAY §8.12
0x5 Expired EXPIRED §8.12
0x6 Too Far Behind TOO_FAR_BEHIND §8.12

7 code points from table-5 of draft-11 (§8.12. SUBSCRIBE_DONE).

The application SHOULD use a relevant error code in FETCH_ERROR, as defined below:

Code Reason Normalized name Defined in
0x0 Internal Error INTERNAL_ERROR §8.15
0x1 Unauthorized UNAUTHORIZED §8.15
0x2 Timeout TIMEOUT §8.15
0x3 Not Supported NOT_SUPPORTED §8.15
0x4 Track Does Not Exist TRACK_DOES_NOT_EXIST §8.15
0x5 Invalid Range INVALID_RANGE §8.15
0x6 No Objects NO_OBJECTS §8.15
0x7 Invalid Joining Subscribe ID INVALID_JOINING_SUBSCRIBE_ID §8.15
0x10 Malformed Auth Token MALFORMED_AUTH_TOKEN §8.15
0x11 Unknown Auth Token Alias UNKNOWN_AUTH_TOKEN_ALIAS §8.15
0x12 Expired Auth Token EXPIRED_AUTH_TOKEN §8.15

11 code points from table-6 of draft-11 (§8.15. FETCH_ERROR).

The application SHOULD use a relevant error code in ANNOUNCE_ERROR, as defined below:

Code Reason Normalized name Defined in
0x0 Internal Error INTERNAL_ERROR §8.21
0x1 Unauthorized UNAUTHORIZED §8.21
0x2 Timeout TIMEOUT §8.21
0x3 Not Supported NOT_SUPPORTED §8.21
0x4 Uninterested UNINTERESTED §8.21
0x10 Malformed Auth Token MALFORMED_AUTH_TOKEN §8.21
0x11 Unknown Auth Token Alias UNKNOWN_AUTH_TOKEN_ALIAS §8.21
0x12 Expired Auth Token EXPIRED_AUTH_TOKEN §8.21

8 code points from table-7 of draft-11 (§8.21. ANNOUNCE_ERROR).

The application SHOULD use a relevant error code in SUBSCRIBE_ANNOUNCES_ERROR, as defined below:

Code Reason Normalized name Defined in
0x0 Internal Error INTERNAL_ERROR §8.26
0x1 Unauthorized UNAUTHORIZED §8.26
0x2 Timeout TIMEOUT §8.26
0x3 Not Supported NOT_SUPPORTED §8.26
0x4 Namespace Prefix Unknown NAMESPACE_PREFIX_UNKNOWN §8.26
0x5 Namespace Prefix Overlap NAMESPACE_PREFIX_OVERLAP §8.26
0x10 Malformed Auth Token MALFORMED_AUTH_TOKEN §8.26
0x11 Unknown Auth Token Alias UNKNOWN_AUTH_TOKEN_ALIAS §8.26
0x12 Expired Auth Token EXPIRED_AUTH_TOKEN §8.26

9 code points from table-8 of draft-11 (§8.26. SUBSCRIBE_ANNOUNCES_ERROR).

The application SHOULD use a relevant error code in RESET_STREAM or RESET_STREAM_AT, as defined below:

Code Reason Normalized name Defined in
0x0 Internal Error INTERNAL_ERROR §9.4.3
0x1 Cancelled CANCELLED §9.4.3
0x2 Delivery Timeout DELIVERY_TIMEOUT §9.4.3
0x3 Session Closed SESSION_CLOSED §9.4.3

4 code points from table-12 of draft-11 (§9.4.3. Closing Subgroup Streams).

Object Status is a second family of code points and is counted on its own. It is the status a single Object carries, not the outcome of a request or a session, so its 4 values are never added to the 65 above. In draft-11 it has no IANA registry — the same code points are assigned as prose in the section that defines the field.

Code Name Description
0x0 NORMAL
0x1 OBJECT_DOES_NOT_EXIST
0x3 END_OF_GROUP
0x4 END_OF_TRACK

Payload rule: Any object with a status code other than zero MUST have an empty payload.

The code points, names and registry membership come from crates/moqtap-codec/tools/registries/draft-11.json, a committed extraction of draft-ietf-moq-transport-11 produced by crates/moqtap-codec/tools/extract-registries.py. The moqtap Rust codec's conformance tests read that same file and compare it against the crate's enums in both directions, so a code point this page shows and the codec refuses is a test failure, not a documentation drift.

That extraction records source_sha256, the SHA-256 of the rendered draft as bytes on disk: 1dcacf7964c1f2124ec11a85c9bb2fbe7e02b39491c82b3699571a60c45a07b2. The descriptions and section links on this page are read from spec-sources/draft-11.html in this site's repository, whose hash matches — the two inputs are provably the same document.

Read draft-11 section by section, or go to the draft-11 control message types.

moqtap covers drafts 07 through 20.

All MoQT error codes, draft by draft · Control message types