Diameter Result Codes
Diameter results codes are carried in a response message from Diameter Gateway to the network. Result codes are also written to the transaction log.
-
1xxx — Informational
The request was processed successfully.
- 2xxx — Success Result Codes
The request was processed successfully.
- 3xxx — Protocol Error Result Codes
A protocol error occurred when transmitting a Diameter message.
- 4xxx — Transient Error Result Codes
The requested message cannot be handled at the moment, but it might work in the future. An example is a server that temporarily lacks physical storage space to handle any incoming requests.
- 5xxx — Permanent Failures Result Codes
There was an application error when the server was processing the request message. The sender should not try to send the same message again. Instead, the sender must determine the cause of the application error by checking the error code, and then fix the issue.
If a mapping cannot be found for a specific Diameter response, it is mapped to 5012 (Unable to comply). This is true for all Diameter responses (such as Gx RAR, Gx, CCA, Gy CCA and so forth).
The Charging Server and Transaction Server reply with MATRIXX-specific codes, which Diameter Gateway converts to Diameter-specific codes. The conversion process can be customized as described in the diameter_dictionary.xml file. Diameter Gateway returns hard-coded Diameter result codes in specific cases (for example, the 3xxx result codes).
<result_mapping code="pricing specific" from_detail_value="1" to_detail_value="99" diam_result="5003"/>
<result_mapping code="pricing specific" from_detail_value="100" to_detail_value="199" diam_result="4012"/>
<result_mapping code="pricing specific" from_detail_value="200" to_detail_value="299" diam_result="5031"/>
<result_mapping code="pricing specific" from_detail_value="300" to_detail_value="399" diam_result="4010"/>
The following sections describe the Diameter result codes and the Diameter experimental result codes.
1xxx — Informational
Result Code | Message Alias | Description |
---|---|---|
1001 | ERROR | This informational error is returned by a Diameter server to inform the access device that the authentication mechanism being used requires multiple round trips, and a subsequent request must be issued in order for access to be granted. |
2xxx — Success Result Codes
Result Code | Message Alias | Description |
---|---|---|
2001 | SUCCESS | The request was successfully completed. |
2002 | LIMITED_SUCCESS | The request was successfully completed, but additional processing is required by the application to provide service to the subscriber. |
3xxx — Protocol Error Result Codes
Result Code | Message Alias | Description |
---|---|---|
3001 | COMMAND_UNSUPPORTED | The request contained a command code that the receiver did not recognize or support. This must be used when a Diameter node receives an experimental command that it does not understand (a request that is specified in the diameter_dictionary.xml but it is not mapped to an MATRIXX Data Container (MDC)). |
3002 | UNABLE_TO_DELIVER | Diameter cannot deliver the message to the destination because either no host within the realm supporting the required application was available to process the
request or a Destination-Host AVP was given without the associated Destination-Realm AVP. This result code is returned when a Diameter Credit-Control-Request message is sent to the secondary engine, which only accepts Diameter Capabilities-Exchange-Request messages and Device-Watchdog-Request messages. |
3003 | REALM_NOT_SERVED | The intended realm of the request is not recognized. |
3004 | TOO_BUSY | Not returned. |
3005 | LOOP_DETECTED | Not returned. |
3006 | REDIRECT_INDICATION | A redirect agent has determined that the request could not be satisfied locally and the initiator of the request should direct the request directly to the server, whose contact information has been added to the response. When set, the Redirect-Host AVP must be present. |
3007 | APPLICATION_UNSUPPORTED | A request was sent for a Diameter application that is not supported. |
3008 | INVALID_HDR_BITS | A request was received whose Diameter header bits were either set to an invalid combination or to a value that is inconsistent with the command code's definition. |
3009 | INVALID_AVP_BITS | A request was received that included an AVP whose flag bits are set to an unrecognized value, or that is inconsistent with the AVP's definition. |
3010 | UNKNOWN_PEER | A Capabilities-Exchange Request (CER) was received from an unknown peer. |
4xxx — Transient Error Result Codes
Result Code | Message Alias | Description |
---|---|---|
4001 | AUTHENTICATION_REJECTED | The authentication process for the subscriber failed, most likely due to an invalid password used by the subscriber. Further attempts must only be tried after prompting the subscriber for a new password. |
4002 | OUT_OF_SPACE | A Diameter node received the accounting request but was unable to commit it to stable storage due to a temporary lack of space. |
4003 | ELECTION_LOST | The Diameter peer determined the election process was lost so it disconnected the transport connection. |
4010 | END_USER_SERVICE_DENIED | The service request was denied due to service restrictions or limitations related to the subscriber, for example, the subscriber's balances could not cover the requested service. This value is defined in the 3GPP 32.299 v9.10 specification. |
4011 | CREDIT_CONTROL_NOT_APPLICABLE | The service can be granted to the subscriber, but no further credit control is enforced, for example, when the service is free of charge or is related to off-line charging. This value is defined in the 3GPP 32.299 v9.10 specification. |
4012 | CREDIT_LIMIT_REACHED | The service request was denied because the credit limit on the balance being impacted was reached. This value is defined in the 3GPP 32.299 v9.10 specification. |
4241 | NO_POLICY_COUNTERS_FOUND | The requested policy counter(s) do not exist in the system. |
5xxx — Permanent Failures Result Codes
Result Code | Message Alias | Description |
---|---|---|
5001 | AVP_UNSUPPORTED | The peer received a message that contained an AVP that is not recognized or supported and was marked with the Mandatory bit. A Diameter message with this error must contain one or more Failed-AVP AVPs containing the AVPs that caused the failure. |
5002 | UNKNOWN_SESSION_ID | The request contained an unknown Session-Id. |
5003 | DIAMETER_AUTHORIZATION_REJECTED | A request was received for which the subscriber could not be authorized. This error could occur if the service requested is not permitted to the subscriber. From
the 3GPP 32.299 v9.10 spec: "The OCF denies the service request in order to terminate the service for which credit is requested. For example, this error code is used to inform IP CAN bearer has to be terminated in the CCR message or to block list the rating group in the Multiple-Service-Credit-ControlAVP." The following result can occur when handling a Diameter Re message whose
EventTime precedes its SubscriberExpiryDate .
The following result can occur when handling a Diameter Re message when its SubscriberState field is not equal to the string
"A."
Continued in the next row. |
5003 | DIAMETER_AUTHORIZATION_REJECTED |
The following result can occur during Gy/Ro rating in specific circumstances.
The following circumstances can indicate that a balance should have been required but was not, or the balance expired too soon, or the balance had insufficient
low or high water marks:
Other circumstances include:
|
5004 | INVALID_AVP_VALUE | The request contained an AVP with an invalid value in its data portion. A Diameter message indicating this error must include the offending AVPs within a Failed-AVP AVP. |
5005 | MISSING_AVP | The request did not contain an AVP that is required by the Command Code definition. If this value is sent in the Result-CodeAVP, a Failed-AVP AVP should be included in the message. The Failed-AVP AVP must contain an example of the missing AVP with the Vendor-Id if applicable. The value field of the missing AVP should be of correct minimum length and contain zeroes. |
5006 | RESOURCES_EXCEEDED | A request was received that cannot be authorized because the user has already expended allowed resources. An example of this error condition is when a user that is restricted to one dial-up PPP port attempts to establish a second PPP connection. |
5007 | CONTRADICTING_AVPS | The Home Diameter server detected AVPs in the request that contradict each other and, as a result, will not provide service to the subscriber. One or more Failed-AVP AVPs must be present, containing the AVPs that contradicted each other. |
5008 | AVP_NOT_ALLOWED | A message was received with an AVP that must not be present. The Failed-AVP AVP must be included and contain a copy of the offending AVP. |
5009 | OCCURS_TOO_MANY_TIMES | A message was received that included an AVP that appeared more times than permitted in the message definition. The Failed-AVP AVP must be included and contain a copy of the first instance of the offending AVP that exceeded the maximum number of occurrences. |
5010 | NO_COMMON_APPLICATION | A CER message was received and there are no common applications supported between the peers. |
5011 | UNSUPPORTED_VERSION | A request was received whose version number is unsupported. |
5012 | UNABLE_TO_COMPLY | A request is rejected for unspecified reasons. |
5013 | INVALID_BIT_IN_HEADER | An unrecognized bit in the Diameter header is set to 1. |
5014 | INVALID_AVP_LENGTH | The request contained an AVP with an invalid length. A Diameter message indicating this error must include the offending AVPs within a Failed-AVP AVP. |
5015 | INVALID_MESSAGE_LENGTH | A request was received with an invalid message length. |
5016 | INVALID_AVP_BIT_COMBO | The request contained an AVP with a value in the AVP Flags field that is not allowed. A Diameter message indicating this error must include the offending AVPs within a Failed-AVP AVP. |
5017 | NO_COMMON_SECURITY | A CER message was received and there are no common security mechanisms supported between the peers. A Capabilities-Exchange-Answer (CEA) must be returned with the Result-Code AVP set to NO_COMMON_SECURITY. |
5030 | USER_UNKNOWN | The specified end subscriber could not be found in the OCF. This value is defined in the 3GPP 32.299 v9.10 spec. |
5031 | DIAMETER_RATING_FAILED | Informs the CTF that the OCF cannot rate the service request due to insufficient rating input, incorrect AVP combination, or due to an AVP or an AVP value that is not recognized or supported in the rating. For flow-based charging this error code is used if the Rating group is not recognized. The Failed-AVP AVP must be included and contain a copy of the entire AVP(s) that could not be processed successfully or an example of the missing AVP complete with the Vendor-Id if applicable. The value field of the missing AVP should be of correct minimum length and contain zeroes. This value is defined in the 3GPP 32.299 v9.10 spec. |
3GPP-Defined Experimental Result Codes
Result Code | Message Alias | Description |
---|---|---|
3GPP - 2001 | DIAMETER_FIRST_REGISTRATION | The HSS informs the I-CSCF that the user is authorized to register this public identity. An S-CSCF shall be assigned to the user. |
3GPP - 2002 | DIAMETER_SUBSEQUENT_REGISTRATION | The HSS informs the I-CSCF that the user is authorized to register this public identity. A S-CSCF is already assigned and there is no need to select a new one. |
3GPP - 2003 | DIAMETER_UNREGISTERED_SERVICE | The HSS informs the I-CSCF that the public identity is not registered but has services related to unregistered state. A S-CSCF shall be assigned to the user. |
3GPP - 2004 | DIAMETER_SUCCESS_SERVER | The HSS informs the I-CSCF that the de-registration is completed. The S-CSCF name is not stored in the HSS. |
3GPP - 5001 | DIAMETER_ERROR_USER_UNKNOWN | A message was received for a user or a wildcard identity that is unknown. |
3GPP - 5002 | DIAMETER_ERROR_IDENTITIES_DONT_MATCH | A message was received with a public identity and a private identity for a user, and the server determines that the public identity does not correspond to the private identity. |
3GPP - 5003 | DIAMETER_ERROR_IDENTITY_NOT_REGISTERED | A query for location information is received for a public identity that has not been registered before. The user to which this identity belongs cannot be given service in this situation. |
3GPP - 5004 | DIAMETER_ERROR_ROAMING_NOT_ALLOWED | The user is not allowed to roam in the visited network. |
3GPP - 5005 | DIAMETER_ERROR_IDENTITY_ALREADY_REGISTERED | The identity has already a server assigned and the registration status does not allow that it is overwritten. |
3GPP - 5006 | DIAMETER_ERROR_AUTH_SCHEME_NOT_SUPPORTED | The authentication scheme indicated in an authentication request is not supported. |
3GPP - 5007 | DIAMETER_ERROR_IN_ASSIGNMENT_TYPE | The identity being registered already has the same server assigned, and the registration status does not allow the server assignment type, or the Public Identity type received in the request is not allowed for the indicated server-assignment-type. |
3GPP - 5008 | DIAMETER_ERROR_TOO_MUCH_DATA | The size of the data pushed to the receiving entity exceeds its capacity. |
3GPP - 5009 | DIAMETER_ERROR_NOT_SUPPORTED_USER_DATA | The S-CSCF informs HSS that the received subscription data contained information that was not recognized or supported. |
3GPP - 5011 | DIAMETER_ERROR_FEATURE_UNSUPPORTED | A request application message was received indicating that the origin host requests that the command pair be handled using a feature that is not supported by the destination host. |
3GPP - 5012 | DIAMETER_ERROR_SERVING_NODE_FEATURE_UNSUPPORTED | This error is used when the HSS supports the P-CSCF-Restoration-mechanism feature, but none of the user serving node(s) supports it, as described by 3GPP TS 23.380 [24] clause 5.4. |
3GPP - 5100 | DIAMETER_ERROR_USER_DATA_NOT_RECOGNIZED | The data received by the AS is not supported or recognized. |
3GPP - 5101 | DIAMETER_ERROR_OPERATION_NOT_ALLOWED | The requested operation is not allowed for the user. |
3GPP - 5102 | DIAMETER_ERROR_USER_DATA_CANNOT_BE_READ | The requested user data is not allowed to be read. |
3GPP - 5103 | DIAMETER_ERROR_USER_DATA_CANNOT_BE_MODIFIED | The requested user data is not allowed to be modified. |
3GPP - 5104 | DIAMETER_ERROR_USER_DATA_CANNOT_BE_NOTIFIED | The requested user data is not allowed to be notified on changes. |
3GPP - 5105 | DIAMETER_ERROR_TRANSPARENT_DATA OUT_OF_SYNC | The request to update the repository data at the HSS could not be completed because the requested update is based on an out-of-date version of the repository data. That is, the sequence number in the Sh-Update Request message, does not match the immediate successor of the associated sequence number stored for that repository data at the HSS. It is also used where an AS tries to create a new set of repository data when the identified repository data already exists in the HSS. |
3GPP - 5106 | DIAMETER_ERROR_SUBS_DATA_ABSENT | The Application Server requested to subscribe to changes to Repository Data that is not present in the HSS. |
3GPP - 5107 | DIAMETER_ERROR_NO_SUBSCRIPTION_TO_DATA | The AS received a notification of changes of some information to which it is not subscribed. |
3GPP - 5108 | DIAMETER_ERROR_DSAI_NOT_AVAILABLE | The Application Server addressed a DSAI (Dynamic Service Activation Information) not configured in the HSS. |
Result Code | Message Alias | Description |
---|---|---|
3GPP - 5100 | DIAMETER_ERROR_USER_DATA_NOT_RECOGNIZED | The data received by the AS is not supported or recognized. |
3GPP - 5101 | DIAMETER_ERROR_OPERATION_NOT_ALLOWED | The requested operation is not allowed for the user. |
3GPP - 5102 | DIAMETER_ERROR_USER_DATA_CANNOT_BE_READ | The requested user data is not allowed to be read. |
3GPP - 5103 | DIAMETER_ERROR_USER_DATA_CANNOT_BE_MODIFIED | The requested user data is not allowed to be modified. |
3GPP - 5104 | DIAMETER_ERROR_USER_DATA_CANNOT_BE_NOTIFIED | The requested user data is not allowed to be notified on changes. |
3GPP - 5105 | DIAMETER_ERROR_TRANSPARENT_DATA_OUT_OF_SYNC | The request to update the repository data at the HSS could not be completed because the requested update is based on an out-of-date version of the repository data. That is, the sequence number in the Sh-Update Request message, does not match the immediate successor of the associated sequence number stored for that repository data at the HSS. It is also used where an AS tries to create a new set of repository data when the identified repository data already exists in the HSS. |
3GPP - 5106 | DIAMETER_ERROR_SUBS_DATA_ABSENT | The Application Server requested to subscribe to changes to Repository Data that is not present in the HSS. |
3GPP - 5107 | DIAMETER_ERROR_NO_SUBSCRIPTION_TO_DATA | The AS received a notification of changes of some information to which it is not subscribed. |
3GPP - 5108 | DIAMETER_ERROR_DSAI_NOT_AVAILABLE | The Application Server addressed a DSAI (Dynamic Service Activation Information) not configured in the HSS. |