The application SHOULD use a relevant error code in REQUEST_ERROR (Section 9.4), as defined below and assigned in Section 16.11.2. Most codepoints have identical meanings for various request types, but some have request-specific meanings.
- INTERNAL_ERROR:
-
An implementation specific or generic error occurred.
- UNAUTHORIZED:
-
The subscriber is not authorized to perform the requested action on the given track. This might be retryable if the authorization token is not yet valid.
- 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.
- NOT_SUPPORTED:
-
The endpoint does not support the type of request.
- MALFORMED_AUTH_TOKEN:
-
Invalid Auth Token serialization during registration (see Section 8.9).
- EXPIRED_AUTH_TOKEN:
-
Authorization token has expired (Section 8.9).
- GOING_AWAY:
-
The endpoint has received a GOAWAY and MAY reject new requests.
- EXCESSIVE_LOAD:
-
The responder is overloaded and cannot process the request at this time. The sender SHOULD use the Retry Interval to indicate when the request can be retried.
- UNSUPPORTED_EXTENSION:
-
The track contains a Mandatory Track Property (see Section 3.6) that the endpoint does not understand.
- REDIRECT:
-
The request cannot be fulfilled by this endpoint, but could succeed at the location specified in the Redirect structure. The requester SHOULD establish a new session to the provided URI (if present) and retry the request using the Redirect target. A Retry Interval of 0 indicates the original request SHOULD NOT be retried as sent; it does not prevent the requester from following a Redirect to a different URI or Redirect target. This error code can appear in response to SUBSCRIBE, FETCH, TRACK_STATUS, PUBLISH, PUBLISH_NAMESPACE, SUBSCRIBE_NAMESPACE, and SUBSCRIBE_TRACKS. Relays are not required to follow redirects from upstream and MAY forward a REDIRECT response to matching downstream requests. A relay MAY cache a REDIRECT response for up to Retry Interval milliseconds and use it to respond to subsequent matching requests without forwarding them upstream.
Below are errors for use by the publisher. They can appear in response to SUBSCRIBE, FETCH, TRACK_STATUS, SUBSCRIBE_NAMESPACE, and SUBSCRIBE_TRACKS, unless otherwise noted.
- DOES_NOT_EXIST:
-
The track or namespace is not available at the publisher.
- INVALID_RANGE:
-
In response to SUBSCRIBE or FETCH, specified Filter or range of Locations cannot be satisfied.
- INVALID_FILTER:
-
A filter parameter is invalid.
- MALFORMED_TRACK:
-
In response to a FETCH, a relay publisher detected the track was malformed (see Section 12.1).
The following are errors for use by the subscriber. They can appear in response to PUBLISH or PUBLISH_NAMESPACE, unless otherwise noted.
- UNINTERESTED:
-
The subscriber is not interested in the track or namespace.
Errors below can only be used in response to one message type.
- PREFIX_OVERLAP:
-
In response to SUBSCRIBE_NAMESPACE or SUBSCRIBE_TRACKS, the namespace prefix shares a common prefix with another subscription of the same type in the same session. SUBSCRIBE_NAMESPACE and SUBSCRIBE_TRACKS have independent overlap spaces, so a SUBSCRIBE_NAMESPACE and a SUBSCRIBE_TRACKS may share the same prefix.
- NAMESPACE_TOO_LARGE:
-
In response to SUBSCRIBE_NAMESPACE or SUBSCRIBE_TRACKS, the namespace prefix matches more publishers than the relay is willing to enumerate.
- CONFLICTING_FILTERS:
-
In response to SUBSCRIBE_TRACKS, the filter parameters conflict among too many subscribers to aggregate the subscription upstream or otherwise efficiently service it.