Zum Inhalt springen

API-Fehler und Antworten

Dieser Referenzartikel behandelt die verschiedenen Fehler und Server-Antworten, die bei der Verwendung der Braze API auftreten können, und wie Sie diese beheben.

Server-Antworten

Wenn Ihre POST-Payload von unseren Servern akzeptiert wurde, erhalten erfolgreiche Nachrichten die folgende Antwort:

{
  "message" : "success"
}

Beachten Sie, dass „success“ lediglich bedeutet, dass die Payload der RESTful API korrekt formatiert war und an unsere Dienste für Push-Benachrichtigungen, E-Mail oder anderes Messaging übergeben wurde. Es bedeutet nicht, dass die Nachrichten tatsächlich zugestellt wurden, da weitere Faktoren die Zustellung der Nachricht verhindern können. Beispielsweise kann ein Gerät offline sein, das Push-Token von den Servern von Apple abgelehnt werden oder Sie haben eine unbekannte Nutzer-ID angegeben.

Warum gibt meine Anfrage „success“ zurück, obwohl keine Nachricht zugestellt wurde?

Eine Antwort mit message: success oder 2XX bedeutet, dass Braze die Anfrage für die beteiligten Endpunkte akzeptiert und in die Warteschlange gestellt hat – nicht, dass alle Empfänger:innen eine Nachricht erhalten haben. Beim Messaging hängt die Zustellung weiterhin von der Kanal-Berechtigung, Token, Fehlern des Anbieters und der Validierung des Inhalts ab. In der Tabelle Schwerwiegende Fehler finden Sie HTTP-Fehler, die Sendungen blockieren. Metriken zur nachgelagerten Zustellung finden Sie in Ihren Campaign- oder Canvas-Analytics.

Bei Endpunkten wie /users/identify, die keine Nachrichten versenden, bedeutet eine erfolgreiche Antwort lediglich, dass Braze die Anfrage zur Verarbeitung akzeptiert hat. Wenn keine Nutzer:in mit dem angegebenen Alias existiert oder der Alias zu einem Profil gehört, das bereits eine external_id hat, überspringt Braze die Identifizierung. Die API gibt trotzdem die ursprüngliche erfolgreiche Antwort zurück; es gibt keinen Fehler, der darauf hinweist, dass der Alias nicht zugeordnet wurde. Da bei alias_name die Groß- und Kleinschreibung beachtet wird, führt eine abweichende Schreibweise zum gleichen Ergebnis.

Wenn Ihre Nachricht erfolgreich ist, aber nicht schwerwiegende Fehler aufweist, erhalten Sie die folgende Antwort:

{
  "message" : "success", "errors" : [<minor error message>]
}

Im Erfolgsfall werden alle Nachrichten, die nicht von einem Fehler im Array errors betroffen sind, trotzdem zugestellt. Wenn Ihre Nachricht einen schwerwiegenden Fehler aufweist, erhalten Sie die folgende Antwort:

{
  "message" : <fatal error message>, "errors" : [<minor error message>]
}

Antworten für getrackte Sende-IDs

Analytics sind für Campaigns immer verfügbar. Außerdem sind Analytics für eine bestimmte Campaign-Sendeinstanz verfügbar, wenn die Campaign als Broadcast gesendet wird. Wenn das Tracking für eine bestimmte Campaign-Sendeinstanz verfügbar ist, erhalten Sie die folgende Antwort:

{
  "message": "success", "send_id" : "example_send_id"
}

Die bereitgestellte Sende-ID kann als Parameter für den Endpunkt /send/data_series verwendet werden, um sendungsspezifische Analytics abzurufen.

Fehler

Das Statuscode-Element einer Server-Antwort ist eine dreistellige Zahl, deren erste Ziffer die Antwortklasse festlegt.

  • Die 2XX-Klasse von Statuscodes (nicht schwerwiegend) zeigt an, dass Ihre Anfrage erfolgreich empfangen, verstanden und akzeptiert wurde.
  • Die 4XX-Klasse von Statuscodes (schwerwiegend) zeigt einen Client-Fehler an. Eine vollständige Liste der 4XX-Fehlercodes und ihrer Beschreibungen finden Sie in der Tabelle der schwerwiegenden Fehler.
  • Die 5XX-Klasse von Statuscodes (schwerwiegend) zeigt einen Server-Fehler an. Dafür gibt es mehrere mögliche Ursachen. Zum Beispiel kann der Server, auf den Sie zugreifen möchten, die Anfrage nicht ausführen, der Server wird gerade gewartet und kann die Anfrage deshalb nicht ausführen, oder der Server hat ein hohes Traffic-Aufkommen. In diesem Fall empfehlen wir, Ihre Anfrage mit exponentiellem Backoff erneut zu senden. Bei einem Incident oder Ausfall kann Braze keine REST-API-Aufrufe wiederholen, die während des Incident-Zeitraums fehlgeschlagen sind. Sie müssen alle Aufrufe, die während des Incident-Zeitraums fehlgeschlagen sind, selbst erneut senden.
    • Ein 502-Fehler ist ein Fehler, der auftritt, bevor die Anfrage den Zielserver erreicht.
    • Ein 503-Fehler bedeutet, dass die Anfrage den Zielserver erreicht hat, wir sie aber nicht abschließen können, weil nicht genügend Kapazität vorhanden ist, ein Netzwerkproblem vorliegt oder Ähnliches.
    • Ein 504-Fehler zeigt an, dass ein Server keine Antwort von einem anderen, vorgelagerten Server erhalten hat.

Schwerwiegende Fehler

Die folgenden Statuscodes und zugehörigen Fehlermeldungen werden zurückgegeben, wenn bei Ihrer Anfrage ein schwerwiegender Fehler auftritt.

Fehlercode Beschreibung
5XX Internal Server Error Senden Sie Ihre Anfrage mit exponentiellem Backoff erneut.
400 Bad Request Fehlerhafte Syntax. Ungültiges JSON gibt HTTP 400 zurück. Das Feld error kann eine Meldung enthalten, dass Sie im Anfragetext gültiges application/json übergeben müssen, oder Error while parsing request body. Please check your syntax. Siehe Fehler beim Parsen des Anfragetexts.
400 No Recipients Die Anfrage enthält keine externen IDs oder Segment-IDs bzw. keine Push-Token.
400 Invalid Campaign ID Für die angegebene Campaign-ID wurde keine Messaging-API-Campaign gefunden.
400 Bad Request (transactional campaign) Transaktions-Campaigns können nicht über diesen Endpunkt getriggert werden. Verwenden Sie stattdessen den Endpunkt /transactional/v1/campaigns/{campaign_id}/send. Wird von /campaigns/trigger/send und /campaigns/trigger/schedule/create zurückgegeben, wenn campaign_id zu einer Transaktions-E-Mail-Campaign gehört.
400 Message Variant Unspecified Sie geben eine Campaign-ID, aber keine ID für die Nachrichtenvariante an.
400 Invalid Message Variant Sie haben eine gültige Campaign-ID angegeben, aber die ID der Nachrichtenvariante stimmt mit keiner der Nachrichten dieser Campaign überein.
400 Mismatched Message Type Sie haben für mindestens eine Ihrer Nachrichten eine Nachrichtenvariante mit dem falschen Nachrichtentyp angegeben.
400 Invalid Extra Push Payload Sie geben den Schlüssel extra für apple_push oder android_push an, aber es handelt sich nicht um ein Wörterbuch.
400 Max Input Length Exceeded Bei /users/track wird dieser Fehler durch Überschreiten der maximalen Anzahl zulässiger Objekte in einer einzelnen Anfrage verursacht. Das Limit hängt vom Rate-Limit-Modell ab: Für die meisten Kund:innen unterstützt jede Anfrage insgesamt bis zu 75 Objekte über attributes, events und purchases hinweg. Für Kund:innen mit Legacy-Rate-Limits unterstützt jedes Array unabhängig bis zu 75 Objekte. Weitere Informationen finden Sie unter POST: Nutzer:innen erstellen und aktualisieren.
400 The max number of external_ids and aliases per request was exceeded Wird durch den Aufruf von mehr als 50 externen IDs verursacht.
400 The max number of ids per request was exceeded Wird durch den Aufruf von mehr als 50 externen IDs verursacht.
400 No message to send Für die Nachricht ist kein Payload angegeben.
400 Slideup Message Length Exceeded Die Slideup-Nachricht enthält mehr als 140 Zeichen.
400 Apple Push Length Exceeded Der JSON-Payload ist größer als 1.912 Byte.
400 Android Push Length Exceeded Der JSON-Payload ist größer als 4.000 Byte.
400 Bad Request Die Datumsangabe send_at kann nicht geparst werden.
400 Bad Request In Ihrer Anfrage ist in_local_time auf true gesetzt, aber time liegt in der Zeitzone Ihres Unternehmens bereits in der Vergangenheit.
401 Unauthorized Ungültiger API-Schlüssel. Häufige Ursachen sind:

- Fehlender oder fehlerhafter Authorization-Header. Der Header-Wert muss Bearer gefolgt von einem Leerzeichen und Ihrem API-Schlüssel sein: Authorization: Bearer YOUR-API-KEY. Häufige Fehler sind das Weglassen von Bearer, das Weglassen des Schlüssels nach Bearer oder das Setzen des Werts in Anführungszeichen.
- Falscher REST-Endpunkt. Sie senden die Anfrage an die falsche Instanz. Wenn sich Ihr Konto zum Beispiel auf unserer EU-Instanz befindet (https://dashboard-01.braze.eu), sollte die Anfrage an https://rest.fra-01.braze.eu gesendet werden.
- Unzureichende Berechtigungen. Jeder API-Schlüssel ist auf einen bestimmten Workspace und eine bestimmte Gruppe von Berechtigungen beschränkt. Überprüfen Sie die Berechtigungen des Schlüssels im Dashboard unter Einstellungen > API-Schlüssel.
- Falscher API-Schlüssel. API-Schlüssel sind Workspace-spezifisch. Ein Schlüssel aus einem Workspace kann nicht zur Authentifizierung von Anfragen für einen anderen Workspace verwendet werden.
403 Forbidden Der Tarif unterstützt dies nicht, oder das Konto ist anderweitig deaktiviert.
403 Access Denied Der verwendete REST-API-Schlüssel verfügt nicht über ausreichende Berechtigungen. Häufige Ursachen sind:
  • Der API-Schlüssel ist älter als das Feature. Wenn der API-Schlüssel erstellt wurde, bevor ein Feature eingeführt wurde (z. B. Abo-Gruppen oder Kataloge), übernimmt der Schlüssel diese Berechtigungen nicht automatisch. Erstellen Sie unter Einstellungen > API-Schlüssel einen neuen API-Schlüssel mit den erforderlichen Berechtigungen.
  • Fehlende endpunktspezifische Berechtigung. Jeder API-Endpunkt erfordert einen bestimmten Berechtigungsumfang (zum Beispiel users.track oder email.status). Überprüfen Sie, ob die Berechtigungen des Schlüssels zum aufgerufenen Endpunkt passen.
  • Abschließender Schrägstrich oder Tippfehler in der URL. Zum Beispiel kann /users/track/ (mit abschließendem Schrägstrich) statt /users/track unerwartete Fehler verursachen.
404 Not Found Ungültige URL.
415 Unsupported Media Type Der Anfrage-Header Content-Type fehlt oder ist falsch. Fügen Sie auf der Seite Einstellungen Content-Type mit dem Wert application/json hinzu.
429 Rate Limited Rate-Limit überschritten.

Fehler beim Parsen des Anfragetexts

Braze gibt HTTP 400 zurück, wenn der Anfragetext kein gültiges JSON ist. Dies gilt für REST-Endpunkte, die einen JSON-Body akzeptieren, wie POST, PUT und PATCH.

Das Feld error enthält eine Meldung, dass Sie im Anfragetext gültiges application/json übergeben müssen. Möglicherweise sehen Sie auch Error while parsing request body. Please check your syntax.

Häufige Ursachen sind abschließende Kommas, Kommentare innerhalb des JSON, Strings in einfachen Anführungszeichen, eine zusätzliche öffnende { vor dem Payload oder das Senden eines verketteten Strings anstelle eines JSON-kodierten Objekts.

Bevor Sie es erneut versuchen:

  1. Validieren Sie den Payload mit einem JSON-Linter.
  2. Setzen Sie Content-Type: application/json und senden Sie UTF-8-kodiertes JSON.
  3. Vergewissern Sie sich, dass Ihr HTTP-Client das Objekt JSON-kodiert, anstatt rohe Strings zu verketten.

Informationen zur Payload-Größe und zu den Objekt-Limits pro Anfrage für /users/track finden Sie unter Warum erhalte ich 400 Bad Request mit einem Syntax- oder Parse-Fehler?.

New Stuff!