Umgang mit Fehlern
Übersicht overview
API-Fehler in der Adobe Experience Platform Edge Network Server-API können verschiedene Ursachen haben: interne (Edge Network selbst) oder externe (Eingabe, Konfiguration oder vorgelagerte Beziehung).
Fehlertypen error-types
RequestProcessingError
500
InputError
4xx
ConfigurationError
422
UpstreamError
207 Multi-Status
Schweregrad
Server-API-Fehler können auch nach Schweregrad aufgeteilt werden:
- Schwerwiegende Fehler stoppt die Dispatch-Pipeline.
- Nicht tödliche Fehler konnten eine partielle Verarbeitung signalisieren, während die Anforderungsverarbeitung fortgesetzt werden konnte.
- Wenn vorhanden, wird der Gesamtstatuscode der Anfrage in
207 Multi-Status
geändert.
- Wenn vorhanden, wird der Gesamtstatuscode der Anfrage in
RequestProcessingError
InputError
ConfigurationError
UpstreamError
Schwerwiegende Fehler fatal-errors
Schwerwiegende Fehler stoppen die Anforderungsverarbeitung und führen zur Rückgabe des Nicht-2xx-Antwortstatus. Sehen Sie sich den Abschnitt Fehlertypen an, um den erwarteten Statuscode für jeden Fehlertyp anzuzeigen.
Fehler werden von einem Antworttext begleitet, der ein Fehlerobjekt enthält. In diesem Fall enthält der Antworttext ein Problemdetail gemäß der Definition in RFC 7807-Problemdetails für HTTP-APIs.
Der zurückgegebene Inhaltstyp ist der Medientyp application/problem+json
. Sofern vorhanden, enthält diese Antwort maschinenlesbare Details zum Fehler. Zu den Problemdetails zählen URI-Typen.
Alle Fehlerobjekte verfügen über die Nachrichteneigenschaften type
, status
, title
, detail
und report
, sodass der API-Client erkennen kann, welches Problem vorliegt.
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"
}
}
Nicht tödliche Fehler non-fatal-errors
Nicht-tödliche Fehler können weiter aufgeschlüsselt werden in:
- Fehler: Probleme, die während der Verarbeitung der Anfrage aufgetreten sind, aber nicht dazu geführt haben, dass die gesamte Anfrage abgelehnt wurde (z. B. nicht kritische Upstream-Fehler).
- Warnungen: Nachrichten von Upstream-Diensten, die darauf hinweisen könnten, dass die Anfrage teilweise verarbeitet wurde.
Bei nicht tödlichen Fehlern (ohne Warnungen) ändert der Server API den Antwortstatus auf 207 Multi-Status
.
Warnungen hingegen sind meist informativ, da sie im Allgemeinen eine potenziell vorübergehende Bedingung darstellen, die sich nicht vollständig auf die Anfrage auswirkte. Ein Beispiel hierfür ist ein Teilprofil, das in der Segmentierungsmaschine gelesen wird. In diesem Fall hat die Genauigkeit bis zu einem gewissen Grad Auswirkungen, die Funktionalität wird jedoch weiterhin bereitgestellt.
Fehler, die nicht tödlich sind, werden im Format Problemdetails dargestellt, sind jedoch direkt in die Standardantwort des Edge-Gateways eingebettet, die vom Typ application/json
ist.
{
"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
}
}
}
]
}
Umgang mit 4xx
und 5xx
Antworten
4xx Bad Request
4xx
-Fehler wie 400, 403, 404 sollten nicht im Namen des Clients wiederholt werden, mit Ausnahme von 429
. Dies sind Client-Fehler und werden nicht erfolgreich sein. Der Client muss den Fehler beheben, bevor die Anfrage erneut versucht werden kann.429 Too Many Requests
429
HTTP-Antwortcode zeigt an, dass das Adobe Experience Platform-Edge Network oder ein Upstream-Dienst die Rate begrenzt. In diesem Fall muss der Aufrufer in einem solchen Szenario die Antwort-Kopfzeile Retry-After
berücksichtigen. Jede Antwort, die zurückgegeben wird, muss den HTTP-Antwort-Code mit einem Domain-spezifischen Fehler-Code enthalten.500 Internal Server Error
500
-Fehler sind generische, allgemeingültige Fehler. Fehler vom Typ 500
dürfen nicht wiederholt werden, mit Ausnahme von 502
und 503
. Intermediäre müssen mit einem 500
-Fehler antworten und können mit einem allgemeinen Fehlercode/einer allgemeinen Fehlermeldung oder einem domänenspezifischeren Fehlercode/einer domänenspezifischen Fehlermeldung reagieren.502 Bad Gateway
502
-Fehlern die Anfrage nach einiger Zeit erneut versuchen können.503 Service Unavailable
503
-Fehlern können die Anfrage möglicherweise erneut versuchen, müssen jedoch die Retry-After
-Kopfzeile berücksichtigen.504 Gateway Timeout