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 können.

Server-Antworten

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

{
  "message" : "success"
}

Beachten Sie, dass „success“ nur bedeutet, dass der RESTful-API-Payload korrekt aufgebaut war und an unsere Dienste für Push-Benachrichtigungen, E-Mails 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 (zum Beispiel 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 angenommen 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 Kanalberechtigung, Token, Anbieterfehlern und der Validierung der Inhalte ab. In der Tabelle der schwerwiegenden Fehler finden Sie HTTP-Fehler, die den Versand blockieren. Metriken zur nachgelagerten Zustellung finden Sie in den Analytics Ihrer Campaign oder Ihres Canvas.

Bei Endpunkten wie /users/identify, die keine Nachrichten versenden, bedeutet eine erfolgreiche Antwort nur, dass Braze die Anfrage zur Verarbeitung angenommen hat. Wenn kein:e 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 Erfolgsantwort 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. Darüber hinaus stehen Analytics für eine bestimmte Campaign-Sendeinstanz zur Verfügung, wenn die Campaign als Broadcast versendet wird. Wenn 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 können Sie als Parameter für den Endpunkt /send/data_series verwenden, um sendungsspezifische Analytics abzurufen.

Fehler

Das Statuscode-Element einer Server-Antwort ist eine dreistellige Zahl. Die erste Ziffer des Codes gibt die Klasse der Antwort an.

  • Die 2XX-Klasse von Statuscodes (nicht schwerwiegend) zeigt an, dass Ihre Anfrage erfolgreich empfangen, verstanden und akzeptiert wurde.
  • Die 4XX-Klasse von Statuscodes (schwerwiegend) weist auf einen Client-Fehler hin. Eine vollständige Liste der 4XX-Fehlercodes und ihrer Beschreibungen finden Sie im Chart zu schwerwiegenden Fehlern.
  • Die 5XX-Klasse von Statuscodes (schwerwiegend) weist auf einen Server-Fehler hin. Dafür gibt es mehrere mögliche Ursachen: Beispielsweise 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 ist einem hohen Datenaufkommen ausgesetzt. In diesem Fall empfehlen wir, Ihre Anfrage mit exponentiellem Backoff zu wiederholen. Bei einem Vorfall oder Ausfall kann Braze keine REST API-Aufrufe erneut ausführen, die während des Vorfallzeitraums fehlgeschlagen sind. Sie müssen alle Aufrufe, die in diesem Zeitraum fehlgeschlagen sind, selbst wiederholen.
    • 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 bedeutet, 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 Wiederholen Sie Ihre Anfrage mit exponentiellem Backoff.
400 Bad Request Fehlerhafte Syntax. Ungültiges JSON gibt HTTP 400 zurück. Das Feld error kann die 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 der Nachrichtenvariante an.
400 Invalid Message Variant Sie haben eine gültige Campaign-ID angegeben, aber die ID der Nachrichtenvariante stimmt mit keiner Nachricht 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 er ist kein Wörterbuch.
400 Max Input Length Exceeded Bei /users/track wird dieser Fehler dadurch verursacht, dass die maximal zulässige Anzahl von Objekten in einer einzelnen Anfrage überschritten wird. 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 keine Payload angegeben.
400 Slideup Message Length Exceeded Die Slideup-Nachricht enthält mehr als 140 Zeichen.
400 Apple Push Length Exceeded Die JSON-Payload ist größer als 1.912 Byte.
400 Android Push Length Exceeded Die JSON-Payload ist größer als 4.000 Byte.
400 Bad Request Der Datumswert 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 aus Bearer, gefolgt von einem Leerzeichen und Ihrem API-Schlüssel, bestehen: 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 beispielsweise auf unserer EU-Instanz (https://dashboard-01.braze.eu) befindet, 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 Reihe 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 (etwa 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 zu unerwarteten Fehlern führen.
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-Text akzeptieren, etwa POST, PUT und PATCH.

Das Feld error enthält die 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 der Payload oder das Senden eines verketteten Strings statt eines JSON-codierten Objekts.

Bevor Sie es erneut versuchen:

  1. Validieren Sie die Payload mit einem JSON-Linter.
  2. Setzen Sie Content-Type: application/json und senden Sie UTF-8-codiertes JSON.
  3. Stellen Sie sicher, dass Ihr HTTP-Client das Objekt JSON-codiert, statt rohe Strings zu verketten.

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

New Stuff!