Decisioning API Pipeline Diagnostics

Personalization assigns diagnostic codes to the execution of all requests made to the Decisioning API. Diagnostic codes are returned in the response for an authenticated request and included in the associated PersonalizationLog entry for unauthenticated requests.

While diagnostic codes resemble HTTP error codes, avoid interpreting them as such. They’re specific to the Decisioning API and serve a different purpose.

Important

Informational Diagnostic Codes 

Information diagnostic codes provide information about the normal operation of the Decisioning API, indicating that either no issues or only minor issues were encountered.

200: OK 

No unexpected or exceptional issues occurred during the execution of the request.

201: NO_DECISION_QUALIFIED 

Diagnostic message: No Decision qualified

This diagnostic code appears in requests where the individual doesn’t qualify for any of the associated personalization point’s configured decisions.

Processing and General 4XX Diagnostic Codes 

Processing and general 4XX diagnostic codes indicate issues that occurred due to client-side errors or issues with the request itself. Such errors typically require you to correct the request so that they can be processed successfully.

401: POINT_NOT_CONFIGURED 

Diagnostic message: Requested Personalization Point is not configured.

This diagnostic code indicates that Personalization was unable to locate the personalization point specified in the request, due to one or more of the following reasons.

  • There’s a typo in the name or id of the personalization point specified in the request. To avoid this error, ensure that the personalization point details matches those that you configured.
  • Incorrect Tenant Specific Endpoint.
  • Temporary network connectivity issues while fetching a personalization point configuration. If network connectivity impacts your request, retry your request after 30 seconds.
  • The personalization point configuration couldn’t be synchronized with backend services. Edit and re-save the personalization point and retry your request.
  • Conflicting IDs and names of more than one personalization point.

402: UNIDENTIFIED_POINT_REQUESTED 

Diagnostic message: Requested Personalization Point is missing id and name

This diagnostic code indicates that your request is missing properties needed to identify your requested personalization point. To accurately identify a personalization point, your API request must include at least one appropriate identifier such as name or id.

1"personalizationPoints": [
2    {
3        "name": "DevNameOfPersonalizationPoint"
4    }
5]

403: NO_POINTS_REQUEST 

Diagnostic message: Request contained no Personalization Points

This diagnostic code indicates that the request didn’t contain any personalization points that could be used to process the request. This issue can occur if all personalization points specified in the request are rejected due to issues described by 401 and 402 diagnostic codes.

405: PERMISSION_DENIED 

Diagnostic message: Permission Denied

This diagnostic code indicates that your request couldn’t be processed due to permission-related issues such as:

  • Attempting to request a CoPilot Action personalization decision in an unauthenticated requested. To resolve this issue, either ensure the request is authenticated, or request a non-CoPilot personalization.
  • Attempting to request batch personalization decisions for CoPilot Actions. CoPilot Action personalizations must be requested individually.
  • Attempting to request a personalization decision without having Personalization enabled in your instance.

406: TOO_MANY_REQUESTS 

Diagnostic message: Too Many Requests

This internal-only diagnostic code lets internal users know that our backend services are handling too many requests. If backend services encounter this issue, your API requests will receive a 429 HTTP response code, indicating that you must throttle or hold-off requests.

407: DECISION_NOT_FOUND 

Diagnostic message: No Decision found with specified Decision Id

This diagnostic code is logged when a request includes a decisionId field, but the specified decision can’t be found for the requested personalization point. To resolve this issue, check your personalization point’s configuration in the UI and ensure that the decision you’re requesting by ID is mapped to that personalization point.

408: SPECIFIED_DECISION_NOT_SUPPORTED 

Diagnostic message: Specified Decision Feature is not supported for unauthenticated calls

This internal-only diagnostic code indicates that an unauthenticated request included a decisionId field. Such requests result in a 400 HTTP response with the message “Specified Decision Feature is not supported for unauthenticated calls”.

Qualifying Stage 4XX Error Codes 

421: PERSONALIZER_NOT_SELECTED 

Diagnostic message: No Personalizer was selected

This diagnostic code is logged when Personalization attempts to identify which personalizer to invoke for the request but was unable to find one. This error can occur when:

  • No decision qualifies for the personalization request, as described by codes 407 and 408. To avoid this issue, ensure that a valid decision qualifies for the request and that a valid personalizer is selected for the request.
  • No valid personalizer is configured for the decision selected for the request. To resolve this issue, check your personalization point configuration in the UI and ensure a personalizer is configured for the decision being invoked in the request.

Personalizing Stage 4xx Error Codes 

431: PERSONALIZER_TYPE_NOT_FOUND 

Diagnostic message: Requested Personalizer Type is not found

This diagnostic code indicates that a problem with the personalization point’s configuration is preventing Personalization from recognizing the personalizer type associated with an associated decision.

Processing Stage and General 5xx Error Codes 

500: UNEXPECTED_ERROR 

Diagnostic message: Unexpected Error

This diagnostic code is logged when there is an error while formatting content received from the personalizer for writing to the PersonalizationLog, resulting in the Content property of the log being empty. Additionally, errors can occur while preparing to record the request results to the PersonalizationLog.

501: INTERRUPTION 

Diagnostic message: Server interrupted

This diagnostic code indicates that your request couldn’t be processed due to a low-level interruption. Retry your request.

502: TIMEOUT 

Diagnostic message: Timeout

This internal-only diagnostic code indicates that your request failed due to a timeout.

Although this code doesn’t get logged as a diagnostic code, it’s used in the message of an error response. If you encounter this error during a REST API request, it’ll result in a 503 SERVICE UNAVAILABLE response with the message “Timeout Exceeded”.

503: MODEL_LOOKUP_FAILURE 

Diagnostic message: Failed to lookup Points from Process Object Service

This internal-only diagnostic code indicates that Personalization couldn’t retrieve the configuration information for the personalization points specified in your request.

Although this code doesn’t get logged as a diagnostic code, it’s used in the message of an error response. If you encounter this error during a REST API request, it’ll result in a 503 response with the message “Failed to lookup tenant metadata”.

Augmenting Stage 5xx Error Codes 

511: QUERY_SERVICE_ERROR 

Diagnostic message: Failed to call Query Service to look up profile

This diagnostic code indicates that an error occurred while calling Data Cloud Query Service to fetch an individual’s profile Data Graph.

Depending on your configuration, your request request either proceeds, treating the individual as anonymous, or returns a 503 failure response with the message “Empty response from Query Service when querying for profile”.

512: QUERY_SERVICE_MISSING_PROFILE 

Diagnostic message: Query Service response missing profile

This diagnostic code indicates that Personalization successfully called the Data Cloud Query Service to fetch an individual’s profile data graph, but the response showed that the individual has no profile data graph.

In such cases, your request gets processed, treating the individual as anonymous.

513: CANNOT_PARSE_PROFILE 

Diagnostic message: Failed to parse profile

This diagnostic code indicates that the response to Personalization’s call to the Data Cloud Query Service to fetch an individual’s profile data graph contains data in an unexpected format. As a result of this error:

  • targeting rules that require a profile data graph fail to execute properly
  • recommenders can’t use the individual’s profile data graph to personalize recommendations

Qualifying Stage 5xx Error Codes 

521: RULE_EVALUATION_FAILURE 

Diagnostic message: Failed to execute rules for Decision

This diagnostic code indicates that the evaluation of targeting rules for the associated decision encountered an error. This error occurs if:

  • Targeting rules were misconfigured. To resolve this issue, check the configuration of your targeting rules for the decision in the UI.
  • Rules couldn’t be evaluated at runtime due to unexpected data format in the associated profile data graph. To fix this issue, check the individual’s profile data graph to see if there are any data type mismatches.

522: EXPERIMENT_EVALUATION_FAILURE 

Diagnostic message: Failed to execute experiment

This diagnostic code indicates that an error occurred while evaluating an experiment, resulting in no personalizer being selected for use in the request.

To resolve this issue, check the configuration of the experiment associated with the specified personalization point.

523: VALIDATION_ERROR_RULES_CONFIGURATION 

Diagnostic message: Validation error of rules configurations

This diagnostic code indicates that an error occurred while evaluating the targeting rules for a given decision for the individual’s profile data graph. This error occurs due to reason similar to those that result in diagnostic code 521: RULE_EVALUATION_FAILURE.

Personalizing Stage 5xx Error Codes 

531: CONTENT_RETRIEVAL_ERROR_FROM_RECOMMENDATION_SERVICE 

Diagnostic message: Error retrieving content from Recommendation Service

This diagnostic code indicates that an error occurred while calling the Recommendation Service to retrieve personalized content for this request. This error could involve either a standard recommendation personalizer or a CoPilot Action personalizer. Additional details about the error are included in the accompanying error message.

532: PERSONALIZER_RUNTIME_EXCEPTION 

Diagnostic message: Error retrieving content

This diagnostic code indicates that the Recommendation Service encountered an error while retrieving personalized content for this request. Additional details about the error are included in the accompanying error message.

533: RECOMMENDER_CONTENT_SIZE_EXCEEDED 

Diagnostic message: Content items returned from Recommender exceed limit

This diagnostic code indicates that Personalization has received more items than expected when calling the Recommendation Service to retrieve personalized content for this request. The response is truncated to include only the maximum number of items allowed.