Erreurs et réponses d’API
Cet article de référence couvre les diverses erreurs et réponses du serveur qui peuvent apparaître lors de l’utilisation de l’API Braze et la façon de les résoudre.
Réponses du serveur
Si nos serveurs acceptent le payload de votre requête POST, les messages traités avec succès reçoivent la réponse suivante :
{
"message" : "success"
}
Notez qu’un succès signifie uniquement que le payload de l’API RESTful était correctement formé et qu’il a été transmis à nos services de notification push, d’e-mail ou d’autres services d’envoi de messages. Cela ne signifie pas que les messages ont bien été distribués, car d’autres facteurs peuvent empêcher leur distribution (par exemple, un appareil peut être hors ligne, le jeton push peut être rejeté par les serveurs d’Apple, ou vous avez peut-être fourni un ID utilisateur inconnu).
Pourquoi ma requête renvoie-t-elle un succès alors qu’aucun message n’a été distribué ?
Une réponse message: success ou 2XX signifie que Braze a accepté la requête et l’a placée en file d’attente pour les endpoints concernés, et non que chaque destinataire a reçu un message. Pour l’envoi de messages, la distribution dépend toujours de l’éligibilité au canal, des jetons, des erreurs du fournisseur et de la validation du contenu. Consultez le tableau des erreurs fatales pour connaître les erreurs HTTP qui bloquent les envois, ainsi que les analyses de votre Campaign ou de votre Canvas pour les indicateurs de distribution en aval.
Pour les endpoints comme /users/identify, qui n’envoient pas de messages, une réponse de succès signifie uniquement que Braze a accepté la requête en vue de son traitement. Si aucun utilisateur n’existe avec l’alias fourni, ou si l’alias appartient à un profil qui possède déjà un external_id, Braze ignore l’identification. L’API renvoie tout de même la réponse de succès initiale ; aucune erreur n’indique que l’alias n’a pas été trouvé. Comme alias_name est sensible à la casse, une différence de majuscules ou de minuscules produit le même résultat.
Si votre message est traité avec succès mais comporte des erreurs non fatales, vous recevez la réponse suivante :
{
"message" : "success", "errors" : [<minor error message>]
}
En cas de succès, tous les messages qui ne sont pas concernés par une erreur du tableau errors sont tout de même distribués. Si votre message comporte une erreur fatale, vous recevez la réponse suivante :
{
"message" : <fatal error message>, "errors" : [<minor error message>]
}
Réponses pour les ID d’envoi suivis
Les analyses sont toujours disponibles pour les Campaigns. Elles sont également disponibles pour une instance d’envoi de Campaign spécifique lorsque la Campaign est envoyée en diffusion. Lorsque le suivi est disponible pour une instance d’envoi de Campaign spécifique, vous recevez la réponse suivante :
{
"message": "success", "send_id" : "example_send_id"
}
Vous pouvez utiliser l’ID d’envoi fourni comme paramètre de l’endpoint /send/data_series pour récupérer les analyses propres à cet envoi.
Erreurs
Le code de statut d’une réponse du serveur est un nombre à trois chiffres dont le premier chiffre définit la classe de la réponse.
- Les codes de statut de la classe 2XX (non fatals) indiquent que votre requête a bien été reçue, comprise et acceptée.
- Les codes de statut de la classe 4XX (fatals) indiquent une erreur client. Consultez le tableau des erreurs fatales pour obtenir la liste complète des codes d’erreur 4XX et leur description.
- Les codes de statut de la classe 5XX (fatals) indiquent une erreur serveur. Plusieurs causes sont possibles : par exemple, le serveur auquel vous essayez d’accéder ne parvient pas à exécuter la requête, il est en maintenance et ne peut donc pas l’exécuter, ou il subit un trafic élevé. Dans ce cas, nous vous recommandons de relancer votre requête avec des délais exponentiels. En cas d’incident ou de panne, Braze ne peut rejouer aucun appel REST API ayant échoué pendant la période de l’incident. Vous devez relancer vous-même tous les appels qui ont échoué pendant cette période.
- Une erreur 502 correspond à un échec survenu avant que la requête n’atteigne le serveur de destination.
- Une erreur 503 signifie que la requête a atteint le serveur de destination, mais que nous ne pouvons pas la traiter en raison d’une capacité insuffisante, d’un problème réseau ou d’un problème similaire.
- Une erreur 504 indique qu’un serveur n’a pas reçu de réponse d’un autre serveur en amont.
Erreurs fatales
Les codes de statut et messages d’erreur suivants sont renvoyés si votre requête rencontre une erreur fatale.

Tous les codes d’erreur suivants indiquent qu’aucun message n’est envoyé.
| Code d’erreur | Description |
|---|---|
5XX Internal Server Error |
Relancez votre requête avec des délais exponentiels. |
400 Bad Request |
Syntaxe incorrecte. Un JSON non valide renvoie une erreur HTTP 400. Le champ error peut contenir un message indiquant que vous devez transmettre un application/json valide dans le corps de la requête, ou Error while parsing request body. Please check your syntax. Consultez la section Erreur lors de l’analyse du corps de la requête. |
400 No Recipients |
La requête ne contient aucun ID externe, aucun ID de segment ou aucun jeton de notification push. |
400 Invalid Campaign ID |
Aucune campagne d’API de messaging n’a été trouvée pour l’ID de campagne fourni. |
400 Bad Request (transactional campaign) |
Les campagnes transactionnelles ne peuvent pas être déclenchées via cet endpoint. Utilisez plutôt l’endpoint /transactional/v1/campaigns/{campaign_id}/send. Renvoyé par /campaigns/trigger/send et /campaigns/trigger/schedule/create lorsque le campaign_id correspond à une campagne d’e-mail transactionnel. |
400 Message Variant Unspecified |
Vous avez fourni un ID de campagne, mais aucun ID de variante de message. |
400 Invalid Message Variant |
Vous avez fourni un ID de campagne valide, mais l’ID de variante de message ne correspond à aucun des messages de cette campagne. |
400 Mismatched Message Type |
Vous avez fourni une variante de message du mauvais type pour au moins un de vos messages. |
400 Invalid Extra Push Payload |
Vous avez fourni la clé extra pour apple_push ou android_push, mais il ne s’agit pas d’un dictionnaire. |
400 Max Input Length Exceeded |
Pour /users/track, cette erreur survient lorsque le nombre maximal d’objets autorisés dans une seule requête est dépassé. La limite dépend du modèle de limitation du débit : pour la plupart des clients, chaque requête prend en charge jusqu’à 75 objets au total, toutes catégories confondues (attributes, events et purchases). Pour les clients soumis aux anciennes limites de débit, chaque tableau prend en charge jusqu’à 75 objets de manière indépendante. Pour plus d’informations, consultez POST : Créer et mettre à jour des utilisateurs. |
400 The max number of external_ids and aliases per request was exceeded |
Survient lorsque plus de 50 ID externes sont appelés. |
400 The max number of ids per request was exceeded |
Survient lorsque plus de 50 ID externes sont appelés. |
400 No message to send |
Aucun payload n’est spécifié pour le message. |
400 Slideup Message Length Exceeded |
Le message contextuel contient plus de 140 caractères. |
400 Apple Push Length Exceeded |
Le payload JSON dépasse 1 912 octets. |
400 Android Push Length Exceeded |
Le payload JSON dépasse 4 000 octets. |
400 Bad Request |
Impossible d’analyser la date et l’heure send_at. |
400 Bad Request |
Dans votre requête, in_local_time a la valeur true, mais l’heure time est déjà passée dans le fuseau horaire de votre entreprise. |
401 Unauthorized |
Clé API non valide. Causes fréquentes : - En-tête Authorization manquant ou mal formé. La valeur de l’en-tête doit être Bearer, suivi d’une espace puis de votre clé API : Authorization: Bearer YOUR-API-KEY. Les erreurs les plus courantes consistent à omettre Bearer, à omettre la clé après Bearer ou à placer la valeur entre guillemets.- Mauvais endpoint REST. Vous envoyez la requête à la mauvaise instance. Par exemple, si votre compte se trouve sur notre instance européenne ( https://dashboard-01.braze.eu), la requête doit être envoyée à https://rest.fra-01.braze.eu.- Autorisations insuffisantes. Chaque clé API est limitée à un espace de travail et à un ensemble d’autorisations spécifiques. Vérifiez les autorisations de la clé sous Paramètres > Clés API dans le tableau de bord. - Mauvaise clé API. Les clés API sont propres à chaque espace de travail. Une clé issue d’un espace de travail ne peut pas être utilisée pour authentifier des requêtes destinées à un autre espace de travail. |
403 Forbidden |
Le forfait ne prend pas en charge cette fonctionnalité, ou le compte est désactivé. |
403 Access Denied |
La clé REST API que vous utilisez ne dispose pas des autorisations suffisantes. Causes fréquentes :
|
404 Not Found |
URL non valide. |
415 Unsupported Media Type |
L’en-tête de requête Content-Type est manquant ou incorrect. Dans la page Paramètres, ajoutez Content-Type avec la valeur application/json. |
429 Rate Limited |
Limite de débit dépassée. |
Erreur lors de l’analyse du corps de la requête
Braze renvoie une erreur HTTP 400 lorsque le corps de la requête n’est pas un JSON valide. Cela s’applique aux endpoints REST qui acceptent un corps JSON, comme POST, PUT et PATCH.
Le champ error contient un message indiquant que vous devez transmettre un application/json valide dans le corps de la requête. Vous pouvez également voir le message Error while parsing request body. Please check your syntax.
Parmi les causes fréquentes : des virgules finales, des commentaires dans le JSON, des chaînes entre guillemets simples, une accolade ouvrante { en trop avant le payload, ou l’envoi d’une chaîne concaténée au lieu d’un objet encodé en JSON.
Avant de relancer votre requête :
- Validez le payload à l’aide d’un linter JSON.
- Définissez
Content-Type: application/jsonet envoyez du JSON encodé en UTF-8. - Vérifiez que votre client HTTP encode bien l’objet en JSON au lieu de concaténer des chaînes brutes.
Pour connaître la taille du payload et les limites d’objets par requête pour /users/track, consultez Pourquoi est-ce que je reçois une erreur 400 Bad Request liée à une syntaxe incorrecte ou à une erreur d’analyse ?.