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.

The result status of a Diameter message can be identified by checking the first digit of the result code:

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).

The following pricing-specific results can be customized to return specific results:
<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

The result codes listed in Informational Result Codes inform the requester that a request could not be satisfied and additional action is required on its part before access is granted results.
Table 1. Informational Result Codes
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

The result codes listed in Success Result Codes inform a peer that a request has been successfully completed.
Table 2. 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

The result codes listed in Protocol Error Result Codes occur at the base protocol level and might require per-hop attention, for example, a protocol routing error. Errors in this category should be treated on a per-hop basis. Diameter proxies might try to correct the error, if it is possible.
Table 3. 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

The result codes listed in Transient Error Result Codes inform a peer that the request could not be satisfied at the time it was received, but it might be able to satisfy the request in the future.
Table 4. 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

The result codes listed in Permanent Failures Result Codes inform the peer that the request failed and should not be attempted again.
Table 5. 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.
<result_mapping code="bad data" 
diam_result="5003" from_detail_value="Event 
time is after subscriber's expiry time" 
to_detail_value="Event time is after 
subscriber's expiry time" />
The following result can occur when handling a Diameter Re message when its SubscriberState field is not equal to the string "A."
<result_mapping code="bad data" 
diam_result="5003" from_detail_value="Subscriber 
is not active" to_detail_value="Subscriber is 
not active" />

Continued in the next row.

5003 DIAMETER_AUTHORIZATION_REJECTED
The following result can occur during Gy/Ro rating in specific circumstances.
<result_mapping code="bad data" 
diam_result="5003" from_detail_value="Pricing 
defined error" to_detail_value="Pricing defined error" />
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:
  • A formula exists whose scale basis is the sum of amounts of balances of a balance class or template but there are no such balances.
  • When trying to fetch the amount of a periodic balance interval at time T but there is no interval at that time.
Other circumstances include:
  • If a price-component selects a cell whose value is undefined (not a formula, denial, or SKIP).
  • If a priority generator selects a cell whose value is undefined or if it skips all the way through. (This could be a configuration issue if a priority generator skips all the way through.
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

The result codes listed in 3GPP-Defined Experimental Result Codes (3GPP 29.229 v12.6 ) and 3GPP-Defined Experimental Result Codes (3GPP 29.329 v13.10) are returned in the Experimental-Result AVP. The "3GPP - " prefix before the numeric result-code indicates the Vendor-Id to use and these values are returned in the Experimental-Result AVP.
Table 6. 3GPP-Defined Experimental Result Codes (3GPP 29.229 v12.6 )
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.
Table 7. 3GPP-Defined Experimental Result Codes (3GPP 29.329 v13.10)
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.