Skip to content

MoQT draft-14 Error Codes

MoQT draft-14 assigns 73 code points across 8 registries — Session Termination, SUBSCRIBE_ERROR, PUBLISH_DONE, PUBLISH_ERROR, FETCH_ERROR, ANNOUNCE_ERROR, SUBSCRIBE_NAMESPACE_ERROR and Data Stream Reset — plus 4 Object Status values, which are a separate family and are never counted with the rest. Of the 73, 73 are assignments and 0 are reserved.

Every row below was read out of draft-ietf-moq-transport-14 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

  • 0x19 INVALID_AUTHORITY (Session Termination)
  • 0x1A MALFORMED_AUTHORITY (Session Termination)
  • 0x0 INTERNAL_ERROR (PUBLISH_DONE)
  • 0x1 UNAUTHORIZED (PUBLISH_DONE)
  • 0x2 TRACK_ENDED (PUBLISH_DONE)
  • 0x3 SUBSCRIPTION_ENDED (PUBLISH_DONE)
  • 0x4 GOING_AWAY (PUBLISH_DONE)
  • 0x5 EXPIRED (PUBLISH_DONE)
  • 0x6 TOO_FAR_BEHIND (PUBLISH_DONE)
  • 0x7 MALFORMED_TRACK (PUBLISH_DONE)

Removed

  • 0x0 INTERNAL_ERROR (SUBSCRIBE_DONE)
  • 0x1 UNAUTHORIZED (SUBSCRIBE_DONE)
  • 0x2 TRACK_ENDED (SUBSCRIBE_DONE)
  • 0x3 SUBSCRIPTION_ENDED (SUBSCRIBE_DONE)
  • 0x4 GOING_AWAY (SUBSCRIBE_DONE)
  • 0x5 EXPIRED (SUBSCRIBE_DONE)
  • 0x6 TOO_FAR_BEHIND (SUBSCRIBE_DONE)
  • 0x7 MALFORMED_TRACK (SUBSCRIBE_DONE)

draft-14 adds the PUBLISH_DONE Codes registry. It drops the SUBSCRIBE_DONE registry that draft-13 had.

draft-14 registers 21 code points in §13.1.1, and defines each one in §3.4.

Code Name Description Defined in
0x0 NO_ERROR The session is being terminated without an error. §3.4
0x1 INTERNAL_ERROR An implementation specific error occurred. §3.4
0x2 UNAUTHORIZED The client is not authorized to establish a session. §3.4
0x3 PROTOCOL_VIOLATION The remote endpoint performed an action that was disallowed by the specification. §3.4
0x4 INVALID_REQUEST_ID The session was closed because the endpoint used a Request ID that was smaller than or equal to a previously received request ID, or the least- significant bit of the request ID was incorrect for the endpoint. §3.4
0x5 DUPLICATE_TRACK_ALIAS The endpoint attempted to use a Track Alias that was already in use. §3.4
0x6 KEY_VALUE_FORMATTING_ERROR The key-value pair has a formatting error. §3.4
0x7 TOO_MANY_REQUESTS The session was closed because the endpoint used a Request ID equal to or larger than the current Maximum Request ID. §3.4
0x8 INVALID_PATH The PATH parameter was used by a server, on a WebTransport session, or the server does not support the path. §3.4
0x9 MALFORMED_PATH The PATH parameter does not conform to the rules in Section 9.3.2.2. §3.4
0x10 GOAWAY_TIMEOUT The session was closed because the peer took too long to close the session in response to a GOAWAY (Section 9.4) message. See session migration (Section 3.5). §3.4
0x11 CONTROL_MESSAGE_TIMEOUT The session was closed because the peer took too long to respond to a control message. §3.4
0x12 DATA_STREAM_TIMEOUT The session was closed because the peer took too long to send data expected on an open Data Stream (see Section 10). This includes fields of a stream header or an object header within a data stream. If an endpoint times out waiting for a new object header on an open subgroup stream, it MAY send a STOP_SENDING on that stream or terminate the subscription. §3.4
0x13 AUTH_TOKEN_CACHE_OVERFLOW The Session limit Section 9.3.2.4 of the size of all registered Authorization tokens has been exceeded. §3.4
0x14 DUPLICATE_AUTH_TOKEN_ALIAS Authorization Token attempted to register an Alias that was in use (see Section 9.2.1.1). §3.4
0x15 VERSION_NEGOTIATION_FAILED The client didn't offer a version supported by the server. §3.4
0x16 MALFORMED_AUTH_TOKEN Invalid Auth Token serialization during registration (see Section 9.2.1.1). §3.4
0x17 UNKNOWN_AUTH_TOKEN_ALIAS No registered token found for the provided Alias (see Section 9.2.1.1). §3.4
0x18 EXPIRED_AUTH_TOKEN Authorization token has expired (Section 9.2.1.1). §3.4
0x19 INVALID_AUTHORITY The specified AUTHORITY does not correspond to this server or cannot be used in this context. §3.4
0x1A MALFORMED_AUTHORITY The AUTHORITY value is syntactically invalid. §3.4

21 code points from table-8 of draft-14 (§13.1.1. Session Termination Error Codes).

draft-14 registers 8 code points in §13.1.2, and defines each one in §9.9.

Code Name Description Defined in
0x0 INTERNAL_ERROR An implementation specific or generic error occurred. §9.9
0x1 UNAUTHORIZED The subscriber is not authorized to subscribe to the given track. §9.9
0x2 TIMEOUT The subscription could not be completed before an implementation specific timeout. For example, a relay could not establish an upstream subscription within the timeout. §9.9
0x3 NOT_SUPPORTED The endpoint does not support the SUBSCRIBE method. §9.9
0x4 TRACK_DOES_NOT_EXIST The requested track is not available at the publisher. §9.9
0x5 INVALID_RANGE The end of the SUBSCRIBE range is earlier than the beginning, or the end of the range has already been published. §9.9
0x10 MALFORMED_AUTH_TOKEN Invalid Auth Token serialization during registration (see Section 9.2.1.1). §9.9
0x12 EXPIRED_AUTH_TOKEN Authorization token has expired (Section 9.2.1.1). §9.9

8 code points from table-9 of draft-14 (§13.1.2. SUBSCRIBE_ERROR Codes).

draft-14 registers 8 code points in §13.1.3, and defines each one in §9.12.

Code Name Description Defined in
0x0 INTERNAL_ERROR An implementation specific or generic error occurred. §9.12
0x1 UNAUTHORIZED The subscriber is no longer authorized to subscribe to the given track. §9.12
0x2 TRACK_ENDED The track is no longer being published. §9.12
0x3 SUBSCRIPTION_ENDED The publisher reached the end of an associated Subscribe filter. §9.12
0x4 GOING_AWAY The subscriber or publisher issued a GOAWAY message. §9.12
0x5 EXPIRED The publisher reached the timeout specified in SUBSCRIBE_OK. §9.12
0x6 TOO_FAR_BEHIND The publisher's queue of objects to be sent to the given subscriber exceeds its implementation defined limit. §9.12
0x7 MALFORMED_TRACK A relay publisher detected the track was malformed (see Section 2.5). §9.12

8 code points from table-10 of draft-14 (§13.1.3. PUBLISH_DONE Codes).

draft-14 registers 5 code points in §13.1.4, and defines each one in §9.15.

Code Name Description Defined in
0x0 INTERNAL_ERROR An implementation specific or generic error occurred. §9.15
0x1 UNAUTHORIZED The publisher is not authorized to publish the given namespace or track. §9.15
0x2 TIMEOUT The subscription could not be established before an implementation specific timeout. §9.15
0x3 NOT_SUPPORTED The endpoint does not support the PUBLISH method. §9.15
0x4 UNINTERESTED The namespace or track is not of interest to the endpoint. §9.15

5 code points from table-11 of draft-14 (§13.1.4. PUBLISH_ERROR Codes).

draft-14 registers 12 code points in §13.1.5, and defines each one in §9.18.

Code Name Description Defined in
0x0 INTERNAL_ERROR An implementation specific or generic error occurred. §9.18
0x1 UNAUTHORIZED The subscriber is not authorized to fetch from the given track. §9.18
0x2 TIMEOUT The fetch could not be completed before an implementation specific timeout. For example, a relay could not FETCH missing objects within the timeout. §9.18
0x3 NOT_SUPPORTED The endpoint does not support the FETCH method. §9.18
0x4 TRACK_DOES_NOT_EXIST The requested track is not available at the publisher. §9.18
0x5 INVALID_RANGE The end of the requested range is earlier than the beginning, the start of the requested range is beyond the Largest Location, or the track has not published any Objects yet. §9.18
0x6 NO_OBJECTS No Objects exist between the requested Start and End Locations. §9.18
0x7 INVALID_JOINING_REQUEST_ID The joining Fetch referenced a Request ID that did not belong to an active Subscription. §9.18
0x8 UNKNOWN_STATUS_IN_RANGE The requested range contains objects with unknown status. §9.18
0x9 MALFORMED_TRACK A relay publisher detected the track was malformed (see Section 2.5). §9.18
0x10 MALFORMED_AUTH_TOKEN Invalid Auth Token serialization during registration (see Section 9.2.1.1). §9.18
0x12 EXPIRED_AUTH_TOKEN Authorization token has expired (Section 9.2.1.1). §9.18

12 code points from table-12 of draft-14 (§13.1.5. FETCH_ERROR Codes).

draft-14 registers 7 code points in §13.1.6, and defines each one in §9.25.

Code Name Description Defined in
0x0 INTERNAL_ERROR An implementation specific or generic error occurred. §9.25
0x1 UNAUTHORIZED The subscriber is not authorized to announce the given namespace. §9.25
0x2 TIMEOUT The announce could not be completed before an implementation specific timeout. §9.25
0x3 NOT_SUPPORTED The endpoint does not support the PUBLISH_NAMESPACE method. §9.25
0x4 UNINTERESTED The namespace is not of interest to the endpoint. §9.25
0x10 MALFORMED_AUTH_TOKEN Invalid Auth Token serialization during registration (see Section 9.2.1.1). §9.25
0x12 EXPIRED_AUTH_TOKEN Authorization token has expired (Section 9.2.1.1). §9.25

7 code points from table-13 of draft-14 (§13.1.6. ANNOUNCE_ERROR Codes).

draft-14 registers 8 code points in §13.1.7, and defines each one in §9.30.

Code Name Description Defined in
0x0 INTERNAL_ERROR An implementation specific or generic error occurred. §9.30
0x1 UNAUTHORIZED The subscriber is not authorized to subscribe to the given namespace prefix. §9.30
0x2 TIMEOUT The operation could not be completed before an implementation specific timeout. §9.30
0x3 NOT_SUPPORTED The endpoint does not support the SUBSCRIBE_NAMESPACE method. §9.30
0x4 NAMESPACE_PREFIX_UNKNOWN The namespace prefix is not available for subscription. §9.30
0x5 NAMESPACE_PREFIX_OVERLAP The namespace prefix overlaps with another SUBSCRIBE_NAMESPACE in the same session. §9.30
0x10 MALFORMED_AUTH_TOKEN Invalid Auth Token serialization during registration (see Section 9.2.1.1). §9.30
0x12 EXPIRED_AUTH_TOKEN Authorization token has expired (Section 9.2.1.1). §9.30

8 code points from table-14 of draft-14 (§13.1.7. SUBSCRIBE_NAMESPACE_ERROR Codes).

draft-14 registers 4 code points in §13.1.8, and defines each one in §10.4.3.

Code Name Description Defined in
0x0 INTERNAL_ERROR An implementation specific error. §10.4.3
0x1 CANCELLED The subscriber requested cancellation via UNSUBSCRIBE, FETCH_CANCEL or STOP_SENDING, or the publisher ended the subscription, in which case PUBLISH_DONE (Section 9.12) will have a more detailed status code. §10.4.3
0x2 DELIVERY_TIMEOUT The DELIVERY TIMEOUT Section 9.2.1.2 was exceeded for this stream. §10.4.3
0x3 SESSION_CLOSED The publisher session is being closed. §10.4.3

4 code points from table-15 of draft-14 (§13.1.8. Data Stream Reset Error Codes).

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 73 above. In draft-14 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-14.json, a committed extraction of draft-ietf-moq-transport-14 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: 1bd3bcf31ffd57226c022637cf09be9dddce670d33af2f8d1d4d2055e4131911. The descriptions and section links on this page are read from spec-sources/draft-14.html in this site's repository, whose hash matches — the two inputs are provably the same document.

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

moqtap covers drafts 07 through 20.

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