Troubleshooting
API errors in the Edge Network API can have a variety of causes, internal (Edge Network itself) or external (input, configuration, or upstream related).
Error types
RequestProcessingError
500
InputError
4xx
ConfigurationError
422
UpstreamError
207 Multi-Status
Severity
Edge Network API errors can also be split by severity:
- Fatal errors halt the dispatch pipeline.
- Non-fatal errors could signal a partial processing, while allowing for request processing to continue. When present, the overall status code of the request becomes
207 Multi-Status
.
RequestProcessingError
InputError
ConfigurationError
UpstreamError
Fatal errors
Fatal errors halt the request processing and cause a non-2xx response status to be returned. See the error types section to see the expected status code, corresponding to each error type.
Errors are accompanied by a response body containing an error object. In this case, the response body contains a problem detail, as defined by RFC 7807 Problem Details for HTTP APIs.
The returned content-type is the application/problem+json
media type. When present, this response contains machine-readable details pertaining to the error. Problem details include a URI type.
All error objects have a type
, status
, title
, detail
and report
message properties so that the API client can tell what the problem is.
type
https://ns.adobe.com/aep/errors/<ERROR-CODE>
.status
title
detail
report
{
"type":"https://ns.adobe.com/aep/errors/EXEG-0104-422",
"status":422,
"title":"Unprocessable entity",
"detail":"Invalid request (report attached). Please check your input and try again.",
"report":{
"errors":[
"Allowed Adobe version is 1.0 for standard 'Adobe' at index 0",
"Allowed IAB version is 2.0 for standard 'IAB TCF' at index 1",
"IAB consent string value must not be empty for standard 'IAB TCF' at index 1"
],
"requestId":"0f8821e5-ed1a-4301-b445-5f336fb50ee8",
"orgId":"53A16ACB5CC1D3760A495C99@AdobeOrg"
}
}
Non-fatal errors
Non-fatal errors can be further broken down into:
- Errors: Issues that occurred while processing the request, but did not cause the entire request to be rejected (eg. a non-critical upstream failure).
- Warnings: Messages from upstream services which could signal that a partial processing of the request occurred.
When encountering non-fatal errors (excluding warnings), the API changes the response status to 207 Multi-Status
.
Warnings, on the other hand, are mostly informative, as they generally represent a potentially transient condition, which did not impact the request to full extent. One example here is a partial profile read in the segmentation engine, in which case the accuracy is impacted to some degree, but the functionality is still delivered.
Non-fatal errors are represented in the Problem Details format, but are embedded directly in the gateway's standard response, which is of type application/json
.
{
"requestId": "72eaa048-207e-4dde-bf16-0cb2b21336d5",
"handle": [
],
"errors": [
{
"type": "https://ns.adobe.com/aep/errors/EXEG-0201-503",
"status": 503,
"title": "The 'com.adobe.experience.platform.ode' service is temporarily unable to serve this request. Please try again later."
}
],
"warnings": [
{
"type": "https://ns.adobe.com/aep/errors/EXEG-0204-200",
"status": 200,
"title": "A warning occurred while calling the 'com.adobe.audiencemanager' service for this request.",
"report": {
"cause": {
"message": "Cannot read related customer for device id: ...",
"code": 202
}
}
}
]
}
General error codes guidance
The table below includes general information about the most frequently encountered types of errors. For more detailed information about other error codes, see the detailed error codes list further below on this page.
4xx Bad Request
4xx
errors, like 400, 403, 404, should not be retried on behalf of the client, except for 429
. These are client errors and will not succeed. The client must address the error before retrying the request.429 Too Many Requests
429
HTTP response code indicates that the Adobe Experience Platform Edge Network or an upstream service is rate limiting the requests. In such a scenario the caller must respect the Retry-After
response header. Any responses flowing back must carry the HTTP response code with a domain specific error code.500 Internal Server Error
500
errors are generic, catch-all errors. 500
errors must not be retried, except for 502
and 503
. Intermediaries must respond with a 500
error and may respond with a generic error code/message, or a more domain-specific error code/message.502 Bad Gateway
502
errors may retry the request after some time.503 Service Unavailable
503
errors may retry the request, but must respect the Retry-After
header.504 Gateway Timeout
Detailed error codes list
The table below includes all the available Edge Network API error codes, along with their descriptions. Refer to this table if you encounter errors with your integration.
0000-503
0001-500
0002-400
{paramName}
is missing from your request. Provide a valid {paramName}
value and try again.0003-400
{dataStreamId}
referenced in your request does not exist. Update the request with a valid datastream ID and try again.0004-422
{dataStreamId}
is disabled. Enable your datastream or update the request with a valid datastream ID and try again.0010-422
{imsOrg}
. Update your datastream configuration and try again.0011-422
{configId}
. Update your datastream configuration and try again.0012-422
{sandboxName}
does not exist or is not owned by IMS Org {imsOrg}
. Update your datastream configuration and try again.0013-422
{identityNamespaceCode}
cannot be resolved{identityNamespaceCode}
does not exist for IMS Org {orgId}
and sandbox {sandboxName}
. Update the configuration and try again.0100-500
0101-400
0102-400
{fieldPath}
field does not match your input schema. Update the {fieldPath}
value and try again.0103-400
{fieldPath}
field is mandatory. Provide a valid {fieldPath}
value and try again.0104-422
0105-400
0106-400
{supportedContentTypes}
.0107-400
{paramName}
is missing from your request. Provide a valid {parameterName}
value and try again.0108-400
{parameterName}
parameter type is not supported. Use one of the supported parameter types and try again.0109-408
0110-400
{parameterName}
value is required when cookie support is enabled. Provide a valid {parameterName}
value and try again.0111-415
0112-413
{maxSize}
. Update your request and try again.0113-400
0200-504
{serviceName}
exceeded the allowed time and was canceled. Try again.0201-503
{serviceName}
service is temporarily unable to serve this request. Try again later.0202-502
{serviceName}
service failed to process this request. Check your input/configuration and try again.0203-502
{serviceName}
service for this request. Try again.0204-200
{serviceName}
service for this request. If this warning persists, contact your Adobe representative.0205-502
{serviceName}
service failed to return data for the {shareableName}
shareable component.0300-502
0301-200
0302-409
0303-200
{unauthorizedNamespaces}
. The allowed namespaces are {allowedNamespaces}
.0304-400
{unexpectedIdentities}
were provided for the following event: #{index}
. Update the request and try again.0305-400
{invalidIdValue}
) in the {invalidIdNamespace}
namespace. Update the request and try again.0306-400
#{index}
. Update the request according to your schema and try again.0307-502
0308-400
#{index}
contains an ID ({invalidIdValue}
) in invalid format in the {invalidIdNamespace}
namespace. Update the request and try again.0400-403
0500-401
0501-401
{headerName}
header value and try again.0502-401
0503-401
0504-401
{productContext}
. Add the required product context to the user account and try again.0505-401
{scope}
. Assign the required scope and try again.0506-401
DATASET.WRITE
permissions for the {sandboxName}
sandbox. Check the user permissions and try again.