HTTP status code | HTTP method | |||||
---|---|---|---|---|---|---|
DELETE | GET | PATCH | POST | PUT | OPTIONS | |
100 Continue | N/A | N/A | N/A | N/A | N/A | N/A |
200 OK (NOTE 1, NOTE 2) | SS | M | SS | SS | SS | M |
201 Created | N/A | N/A | N/A | SS | SS | N/A |
202 Accepted | SS | N/A | SS | SS | SS | N/A |
204 No Content (NOTE 2) | M | N/A | SS | SS | SS | SS |
300 Multiple Choices | N/A | N/A | N/A | N/A | N/A | N/A |
303 See Other | SS | SS | N/A | SS | SS | N/A |
307 Temporary Redirect | SS | SS | SS | SS | SS | SS |
308 Permanent Redirect | SS | SS | SS | SS | SS | SS |
400 Bad Request | M | M | M | M | M | M |
401 Unauthorized | M | M | M | M | M | M |
403 Forbidden | M | M | M | M | M | M |
404 Not Found | M | M | M | M | M | M |
405 Method Not Allowed | SS | SS | SS | SS | SS | SS |
406 Not Acceptable | N/A | M | N/A | N/A | N/A | SS |
408 Request Timeout | SS | SS | SS | SS | SS | SS |
409 Conflict | N/A | SS | SS | SS | SS | N/A |
410 Gone | SS | SS | SS | SS | SS | SS |
411 Length Required | N/A | N/A | M | M | M | SS |
412 Precondition Failed | SS | SS | SS | SS | SS | N/A |
413 Content Too Large | N/A | N/A | M | M | M | SS |
414 URI Too Long | N/A | SS (3) | N/A | N/A | SS | N/A |
415 Unsupported Media Type | N/A | N/A | M | M | M | SS |
429 Too Many Requests | M | M | M | M | M | M |
500 Internal Server Error | M | M | M | M | M | M |
501 Not Implemented | SS | SS | SS | SS | SS | SS |
502 Bad Gateway | M | M | M | M | M | M |
503 Service Unavailable | M | M | M | M | M | M |
504 Gateway Timeout (NOTE 4) | SS | SS | SS | SS | SS | SS |
NOTE 1:
"200 OK" response used on SBI shall contain body.
NOTE 2:
If the NF acting as an HTTP Client receives 2xx response code not appearing in table, the NF shall treat the received 2xx response:
NOTE 3:
If GET method includes any query parameter, the NF acting as an HTTP Client shall support "414 URI Too Long" status code.
NOTE 4:
A 5GC Network Function acting as an HTTP Client and supporting indirect communications shall support "504 Gateway Timeout" status code with "ProblemDetails" (see clause 6.10.8.2).
|
Protocol or application Error | HTTP status code | Description |
---|---|---|
INVALID_ | 400 Bad Request | The HTTP request contains an unsupported API name or API version in the URI. |
INVALID_ | 400 Bad Request | The HTTP request has an invalid format. |
INVALID_ | 400 Bad Request | The HTTP request contains an unsupported query parameter in the URI. (NOTE 1) |
MANDATORY_ | 400 Bad Request | A mandatory query parameter, or a conditional query parameter but mandatory required, for an HTTP method was received in the URI with semantically incorrect value. (NOTE 1) |
OPTIONAL_ | 400 Bad Request | An optional query parameter for an HTTP method was received in the URI with a semantically incorrect value that prevents successful processing of the service request. (NOTE 1) |
MANDATORY_ | 400 Bad Request | Query parameter which is defined as mandatory, or as conditional but mandatory required, for an HTTP method is not included in the URI of the request. (NOTE 1) |
MANDATORY_ | 400 Bad Request | A mandatory IE (within the JSON body or within a variable part of an "apiSpecificResourceUriPart" or within an HTTP header), or conditional IE but mandatory required, for an HTTP method was received with a semantically incorrect value. (NOTE 1) |
OPTIONAL_ | 400 Bad Request | An optional IE (within the JSON body or within an HTTP header) for an HTTP method was received with a semantically incorrect value that prevents successful processing of the service request. (NOTE 1) |
MANDATORY_ | 400 Bad Request | A mandatory IE (within the JSON body or within the variable part of an "apiSpecificResourceUriPart" or within an HTTP header), or conditional IE but mandatory required, for an HTTP method is not included in the request. (NOTE 1) |
UNSPECIFIED_ | 400 Bad Request | The request is rejected due to unspecified client error. (NOTE 2) |
ACCESS_ | 401 Unauthorized | The request is rejected due to one or more missing claim(s) in the OAuth2.0 access token. |
RESOURCE_ | 400 Bad Request | The notification request is rejected because the callback URI still exists in the receiver of the notification, but the specific resource context identified within the notification content is not found in the NF service consumer. |
CCA_ | 403 Forbidden | The request is rejected due to a failure to verify the 3gpp-Sbi-Client-Credentials at the receiving entity (e.g. NRF or NF service producer). |
SOURCE_NF_ | 403 Forbidden | The request is rejected due to a failure to verify the 3gpp-Sbi-Source-NF-Client-Credentials at the receiving entity (e.g. NRF or NF service producer). |
TOKEN_ | 403 Forbidden | The request is rejected due to a mismatch between the subject claim in the access token and subject claim in the 3gpp-Sbi-Client-Credentials. |
TOKEN_ | 403 Forbidden | The request is rejected due to a mismatch between the sourceNfInstanceId claim in the access token and subject claim in the 3gpp-Sbi-Source-NF-Client-Credentials. |
MODIFICATION_ | 403 Forbidden | The request is rejected because the contained modification instructions attempt to modify IE which is not allowed to be modified. |
MISSING_ | 403 Forbidden | The request is rejected because one or more information elements of the requester required to authorize the requester are missing. (NOTE 1) |
SUBSCRIPTION_ | 404 Not Found | The request for modification or deletion of a subscription, or the notification request, is rejected because the subscription is not found in the NF. |
RESOURCE_ | 404 Not Found | The request is rejected because a fixed part after the first variable part of an "apiSpecificResourceUriPart" (as defined in clause 4.4.1 of TS 29.501) is not found in the NF. This fixed part of the URI may represent a sub-resource collection (e.g. contexts, subscriptions, policies) or a custom operation. (NOTE 5) |
INCORRECT_ | 411 Length Required | The request is rejected due to incorrect value of a Content-length header field. |
MAX_JSON_SIZE_EXCEEDED | 413 Content Too Large | The request is rejected because the JSON payload size exceeds the allowed maximum size (see clause 6.2 of TS 29.501). |
NF_ | 429 Too Many Requests | The request is rejected due to excessive traffic which, if continued over time, may lead to (or may increase) an overload situation of the NF instance. (NOTE 7) |
NF_ | 429 Too Many Requests | The request is rejected due to excessive traffic which, if continued over time, may lead to (or may increase) an overload situation of the NF service instance. (NOTE 7) |
INSUFFICIENT_ | 500 Internal Server Error | The request is rejected due to insufficient resources. |
UNSPECIFIED_ | 500 Internal Server Error | The request is rejected due to unspecified reason at the NF. (NOTE 3) |
SYSTEM_ | 500 Internal Server Error | The request is rejected due to generic error condition in the NF. |
NF_ | 500 Internal Server Error | The request is rejected due to the unavailability of the NF, and the requester may trigger an immediate re-selection of an alternative NF based on this information. (NOTE 6) (NOTE 8). |
NF_ | 500 Internal Server Error | The request is rejected due to the unavailability of the NF service, and the requester may trigger an immediate re-selection of an alternative NF service based on this information. (NOTE 6) (NOTE 8). |
INBOUND_ | 502 Bad Gateway | The request is rejected due to the receipt of an 5xx error from an inbound server that the NF Service Producer accessed while attempting to fulfil the request (see clause 6.4.2.1). |
NF_ | 503 Service Unavailable | The NF instance experiences congestion and performs overload control, which does not allow the request to be processed. (NOTE 4) (NOTE 7) |
NF_SERVICE_ | 503 Service Unavailable | The NF service instance experiences congestion and performs overload control, which does not allow the request to be processed. (NOTE 4) (NOTE 7) |
TARGET_ | 504 Gateway Timeout | The request is not served as the target NF is not reachable. (NOTE 6) |
TIMED_ | 504 Gateway Timeout | The request is rejected due a request that has timed out at the HTTP client (see clause 6.11.2). |
NOTE 1:
"invalidParams" attribute shall be included in the "ProblemDetails" data structure indicating unsupported, missing or incorrect IE(s) or query parameter(s) or 3gpp-Sbi-Discovery-* header(s).
NOTE 2:
This application error indicates error in the HTTP request and there is no other application error value that can be used instead.
NOTE 3:
This application error indicates error condition in the NF and there is no other application error value that can be used instead.
NOTE 4:
If the reason for rejection is a temporary overload, the NF may include in the response a Retry-After header field to indicate how long the service is expected to be unavailable.
NOTE 5:
If the request is rejected because of an error in an URI before the first variable part of an "apiSpecificResourceUriPart", the "404 Not Found" HTTP status code may be sent without "ProblemDetails" data structure indicating protocol or application error.
NOTE 6:
The NF service consumer (as receiver of the cause code) should stop sending subsequent requests addressing the resource contexts in the producer's NF instance (for NF_FAILOVER) or NF service instance (for NF_SERVICE_FAILOVER) to avoid massive rejections. The NF service consumer may reselect an alternative NF service producer as specified clause 6.5 of TS 23.527, e.g. using the Binding Indication of resource context. It is implementation specific for the NF service consumer to determine when and whether the NF producer becomes available again, e.g. when there is no other alternative available or at expiry of a local configured timer.
NOTE 7:
When a NF service producer receives NF_CONGESTION_RISK, NF_SERVICE_CONGESTION_RISK, NF_CONGESTION and NF_SERVICE_CONGESTION from a NF service consumer when sending a request message towards a callback/notification URI, the NF service producer shall identify the NF service consumer that is congested using either the authority of the notification/callback URI or together with the "callback-uri-prefix" if it is provided in 3gpp-Sbi-consumer-info as specified in clause 5.2.3.3.7.
NOTE 8:
The NF service producer (as receiver of the cause code) should stop sending subsequent notification requests addressing the session contexts towards the consumer NF (service) instance to avoid massive rejections, where the consumer NF (service) instance shall be identified by either the authority of the notification/callback URI or together with the "callback-uri-prefix" if it is provided in 3gpp-Sbi-consumer-info as specified in clause 5.2.3.3.7. The NF service producer may reselect an alternative NF service consumer as specified in clause 6.6 of TS 23.527, e.g. using the Binding Indication of the session context. It is implementation specific for the NF service producer to determine when and whether the NF consumer becomes available again, e.g. when there is no other alternative available or at expiry of a local configured timer. Note that if a consumer NF service instance complying with an earlier version of the specification shares the same authority with other consumer NF service instances and sends the NF_FAILOVER and NF_SERVICE_FAILOVER causes to a NF service producer while not supporting the new callback-uri-prefix parameter in 3gpp-Sbi-consumer-info, this can result in the NF service producer no longer sending traffic to these consumer NF service instances sharing the same authority.
|
Protocol or application Error | HTTP status code | Description |
---|---|---|
INVALID_API | 400 Bad Request | The HTTP request contains an unsupported API name or API version in the URI. |
INVALID_MSG_FORMAT | 400 Bad Request | The HTTP request has an invalid format. |
INVALID_QUERY_PARAM | 400 Bad Request | The HTTP request contains an unsupported query parameter in the URI. (NOTE 1) |
MANDATORY_QUERY_PARAM_INCORRECT | 400 Bad Request | A mandatory query parameter, or a conditional query parameter but mandatory required, for an HTTP method was received in the URI with semantically incorrect value. (NOTE 1) |
OPTIONAL_QUERY_PARAM_INCORRECT | 400 Bad Request | An optional query parameter for an HTTP method was received in the URI with a semantically incorrect value that prevents successful processing of the service request. (NOTE 1) |
MANDATORY_QUERY_PARAM_MISSING | 400 Bad Request | Query parameter which is defined as mandatory, or as conditional but mandatory required, for an HTTP method is not included in the URI of the request. (NOTE 1) |
MANDATORY_IE_INCORRECT | 400 Bad Request | A mandatory IE (within a variable part of an "apiSpecificResourceUriPart" or within an HTTP header), or conditional IE but mandatory required, for an HTTP method was received with a semantically incorrect value. (NOTE 1) |
OPTIONAL_IE_INCORRECT | 400 Bad Request | An optional IE (within an HTTP header) for an HTTP method was received with a semantically incorrect value that prevents successful processing of the service request. (NOTE 1) |
MANDATORY_IE_MISSING | 400 Bad Request | A mandatory IE (within the variable part of an "apiSpecificResourceUriPart" or within an HTTP header), or conditional IE but mandatory required, for an HTTP method is not included in the request. (NOTE 1) |
UNSPECIFIED_MSG_FAILURE | 400 Bad Request | The request is rejected due to unspecified client error. (NOTE 2) |
NF_DISCOVERY_FAILURE | 400 Bad Request | The request is rejected by the SCP because no NF Service Producer can be found matching the NF service discovery factors (see clause 6.10.6). |
INVALID_DISCOVERY_PARAM | 400 Bad Request | The request is rejected by the SCP because it contains an unsupported discovery parameter (i.e. unknown 3gpp-Sbi-Discovery-* header) (see clause 6.10.3.2). (NOTE 1) |
MSG_LOOP_DETECTED | 400 Bad Request | The request is rejected because message loop is detected. |
MISSING_ACCESS_TOKEN_INFO | 400 Bad Request | The request is rejected due to missing information in the service request that prevents the SCP from requesting an access token to the Authorization Server. See clause 6.10.3.5. |
ACCESS_TOKEN_DENIED | 403 Forbidden | The request is rejected due to the Authorization Server rejecting to grant an access token to the SCP. See clause 6.10.3.5. |
PLMNID_MISMATCH | 403 Forbidden | The request is rejected by the SEPP due to the PLMN ID in the bearer token carried in the "Authorization" header of the reconstructed message does not match the PLMN ID of the N32-f context. |
REQUESTED_PURPOSE_NOT_ALLOWED | 403 Forbidden | The request is rejected due to requested purpose provided in the HTTP request is not allowed by the policy. See clause 6.14. |
ORIGINATING_NETWORK_ID_MISMATCH | 403 Forbidden | The request is rejected because the PLMN ID or the SNPN ID received in the 3gpp-Sbi-Originating-Network-Id header does not match with any of the PLMN IDs that the sending SEPP represents. |
INCORRECT_LENGTH | 411 Length Required | The request is rejected due to incorrect value of a Content-length header field. |
MAX_JSON_SIZE_EXCEEDED | 413 Content Too Large | The request is rejected because the JSON payload size exceeds the allowed maximum size (see clause 6.2 of TS 29.501). |
NF_CONGESTION_RISK | 429 Too Many Requests | The request is rejected due to excessive traffic which, if continued over time, may lead to (or may increase) an overload situation. |
INSUFFICIENT_RESOURCES | 500 Internal Server Error | The request is rejected due to insufficient resources. |
UNSPECIFIED_NF_FAILURE | 500 Internal Server Error | The request is rejected due to unspecified reason at the SCP or SEPP. (NOTE 3) |
SYSTEM_FAILURE | 500 Internal Server Error | The request is rejected due to generic error condition in the SCP or SEPP. |
NF_FAILOVER | 500 Internal Server Error | The request is rejected by the SCP due to the unavailability of the NF, and the requester may trigger an immediate re-selection of an alternative NF based on this information. |
NF_SERVICE_FAILOVER | 500 Internal Server Error | The request is rejected by the SCP due to the unavailability of the NF service, and the requester may trigger an immediate re-selection of an alternative NF service based on this information. |
MAX_SCP_HOPS_REACHED | 502 Bad Gateway | The request is rejected due to the maximum number of allowed SCP hops has been reached when relaying the request message to the target NF. |
NF_DISCOVERY_ERROR | 502 Bad Gateway | The request is rejected due to the receipt of an 5xx or 429 response from the NRF during an NF Discovery procedure the SCP initiated to fulfil the request. |
NF_CONGESTION | 503 Service Unavailable | The SCP or SEPP experiences congestion and performs overload control, which does not allow the request to be processed. (NOTE 4) |
TIMED_OUT_REQUEST | 504 Gateway Timeout | The request is rejected due a request that has timed out at the HTTP client (see clause 6.11.2). |
TARGET_NF_NOT_REACHABLE | 504 Gateway Timeout | The request is not served as the target NF is not reachable (see clause 6.10.8.2). |
NRF_NOT_REACHABLE | 504 Gateway Timeout | The request is not served due to the NRF being unreachable (see clause 6.10.8.2). structure indicating unsupported, missing or incorrect IE(s) or 3gpp-Sbi-Discovery-* header(s). |
TARGET_PLMN_NOT_REACHABLE | 504 Gateway Timeout | The request is not delivered due to issues on interconnect with another PLMN (e.g. issues on N32 connection including contractual reasons). |
NOTE 1:
"invalidParams" attribute shall be included in the "ProblemDetails" data
NOTE 2:
This application error indicates error in the HTTP request and there is no other application error value that can be used instead.
NOTE 3:
This application error indicates error condition in the SCP/SEPP and there is no other application error value that can be used instead.
NOTE 4:
If the reason for rejection is a temporary overload, the SCP/SEPP may include in the response a Retry-After header field to indicate how long the service is expected to be unavailable.
|
Cause value | HTTP status code | Description |
---|---|---|
SCP_REDIRECTION | 307 Temporary Redirect 308 Permanent Redirect | The request is redirected to a different SCP (see clause 6.10.9). |
SEPP_REDIRECTION | 307 Temporary Redirect 308 Permanent Redirect | The request is redirected to a different SEPP (see clause 6.10.9). |
SEPP_REDIRECTION_WITH_DISCOVERY | 307 Temporary Redirect 308 Permanent Redirect | The request is redirected over N32-c to different SEPPs to be discovered (see clause 6.1.8.2 of TS 29.573). |
EXCLAMATION MARK (U+0021) | ! |
NUMBER SIGN (U+0023) | # |
DOLLAR SIGN (U+0024) | $ |
AMPERSAND (U+0026) | & |
APOSTROPHE (U+0027) | ' |
LEFT PARENTHESIS (U+0028) | ( |
RIGHT PARENTHESIS (U+0029) | ) |
ASTERISK (U+002A) | * |
PLUS SIGN (U+002B) | + |
COMMA (U+002C) | , |
SOLIDUS (U+002F) | / |
COLON (U+003A) | : |
SEMICOLON (U+003B) | ; |
EQUALS SIGN (U+003D) | = |
QUESTION MARK (U+003F) | ? |
COMMERCIAL AT (U+0040) | @ |
LEFT SQUARE BRACKET (U+005B) | [ |
RIGHT SQUARE BRACKET (U+005D) | ] |
QUOTATION MARK (U+0022) | " |
PERCENT SIGN (U+0025) | % |
LEFT CURLY BRACKET (U+007B) | { |
RIGHT CURLY BRACKET (U+007D) | } |
AMPERSAND (U+0026) | & |
SOLIDUS (U+002F) | / |
COLON (U+003A) | : |
SEMICOLON (U+003B) | ; |
EQUALS SIGN (U+003D) | = |
QUESTION MARK (U+003F) | ? |
COMMERCIAL AT (U+0040) | @ |
QUOTATION MARK (U+0022) | " |
PERCENT SIGN (U+0025) | % |
COMMA (U+002C) | , |
LEFT SQUARE BRACKET (U+005B) | [ |
RIGHT SQUARE BRACKET (U+005D) | ] |
LEFT CURLY BRACKET (U+007B) | { |
RIGHT CURLY BRACKET (U+007D) | } |