Errores y respuestas de la API
Este artículo de referencia cubre los distintos errores y respuestas del servidor que pueden surgir al utilizar la API de Braze y cómo solucionarlos.
Respuestas del servidor
Si nuestros servidores aceptaron tu carga útil POST, los mensajes correctos reciben la siguiente respuesta:
{
"message" : "success"
}
Ten en cuenta que el éxito solo significa que la carga útil de la API RESTful tenía el formato correcto y se pasó a nuestros servicios de notificaciones push, correo electrónico u otros servicios de mensajería. No significa que los mensajes se hayan entregado realmente, ya que hay factores adicionales que podrían impedir la entrega del mensaje (por ejemplo, un dispositivo podría estar sin conexión, los servidores de Apple podrían rechazar el token de notificaciones push o podrías haber proporcionado un ID de usuario desconocido).
¿Por qué mi solicitud devuelve éxito si no se entregó ningún mensaje?
Una respuesta message: success o 2XX significa que Braze aceptó la solicitud y la puso en cola para los endpoints implicados, no que todos los destinatarios hayan recibido un mensaje. En el caso de la mensajería, la entrega sigue dependiendo de la elegibilidad del canal, los tokens, los errores del proveedor y la validación del contenido. Consulta la tabla de errores fatales para ver los errores HTTP que bloquean los envíos, y revisa el análisis de tu Campaign o Canvas para ver las métricas de entrega posteriores.
Para endpoints como /users/identify, que no envían mensajes, una respuesta correcta solo significa que Braze aceptó la solicitud para procesarla. Si no existe ningún usuario con el alias proporcionado, o el alias pertenece a un perfil que ya tiene un external_id, Braze omite la identificación. La API sigue devolviendo la respuesta inicial de éxito; no hay ningún error que indique que no se encontró coincidencia para el alias. Como alias_name distingue entre mayúsculas y minúsculas, una diferencia en el uso de mayúsculas produce este mismo resultado.
Si tu mensaje se envía correctamente pero tiene errores no fatales, recibirás la siguiente respuesta:
{
"message" : "success", "errors" : [<minor error message>]
}
En caso de éxito, los mensajes que no se vieron afectados por un error de la matriz errors se siguen entregando. Si tu mensaje tiene un error fatal, recibirás la siguiente respuesta:
{
"message" : <fatal error message>, "errors" : [<minor error message>]
}
Respuestas para ID de envío con seguimiento
Los análisis siempre están disponibles para las campañas. Además, los análisis están disponibles para una instancia de envío de campaña específica cuando la campaña se envía como difusión. Cuando el seguimiento está disponible para una instancia de envío de campaña específica, recibes la siguiente respuesta:
{
"message": "success", "send_id" : "example_send_id"
}
El ID de envío proporcionado puede utilizarse como parámetro para el endpoint /send/data_series y así obtener análisis específicos del envío.
Errores
El elemento de código de estado de una respuesta del servidor es un número de 3 dígitos, cuyo primer dígito define la clase de respuesta.
- La clase 2XX de código de estado (no fatal) indica que tu solicitud se recibió, se entendió y se aceptó correctamente.
- La clase 4XX de código de estado (fatal) indica un error del cliente. Consulta la tabla de errores fatales para ver la lista completa de códigos de error 4XX y sus descripciones.
- La clase 5XX de código de estado (fatal) indica un error del servidor. Hay varias causas posibles: por ejemplo, el servidor al que intentas acceder no puede ejecutar la solicitud, el servidor está en mantenimiento y por eso no puede ejecutarla, o el servidor está recibiendo mucho tráfico. Cuando esto ocurra, te recomendamos que vuelvas a intentar la solicitud con retirada exponencial. En caso de incidente o interrupción del servicio, Braze no puede reproducir ninguna llamada a la REST API que haya fallado durante el periodo del incidente. Debes volver a intentar cualquier llamada que haya fallado durante ese periodo.
- Un error 502 es un fallo que se produce antes de que la solicitud llegue al servidor de destino.
- Un error 503 significa que la solicitud llegó al servidor de destino, pero no podemos completarla porque no hay capacidad suficiente, hay un problema de red o algo similar.
- Un error 504 indica que un servidor no recibió respuesta de otro servidor ascendente.
Errores fatales
Si tu solicitud encuentra un error fatal, se devuelven los siguientes códigos de estado y mensajes de error asociados.

Todos los códigos de error siguientes indican que no se envía ningún mensaje.
| Código de error | Descripción |
|---|---|
5XX Internal Server Error |
Vuelve a intentar la solicitud con retirada exponencial. |
400 Bad Request |
Sintaxis incorrecta. Un JSON no válido devuelve HTTP 400. El campo error puede incluir un mensaje que indica que debes pasar application/json válido en el cuerpo de la solicitud, o Error while parsing request body. Please check your syntax. Consulta Error al analizar el cuerpo de la solicitud. |
400 No Recipients |
No hay ID externos, ID de segmento ni tokens de notificaciones push en la solicitud. |
400 Invalid Campaign ID |
No se encontró ninguna campaña de API de mensajería para el ID de campaña que proporcionaste. |
400 Bad Request (transactional campaign) |
Las campañas transaccionales no se pueden desencadenar a través de este endpoint. Utiliza en su lugar el endpoint /transactional/v1/campaigns/{campaign_id}/send. Lo devuelven /campaigns/trigger/send y /campaigns/trigger/schedule/create cuando campaign_id pertenece a una campaña de correo transaccional. |
400 Message Variant Unspecified |
Proporcionas un ID de campaña, pero no un ID de variación de mensaje. |
400 Invalid Message Variant |
Proporcionaste un ID de campaña válido, pero el ID de variación de mensaje no coincide con ninguno de los mensajes de esa campaña. |
400 Mismatched Message Type |
Proporcionaste una variación de mensaje de un tipo de mensaje incorrecto para al menos uno de tus mensajes. |
400 Invalid Extra Push Payload |
Proporcionas la clave extra para apple_push o android_push, pero no es un diccionario. |
400 Max Input Length Exceeded |
En /users/track, este error se produce al superar el número máximo de objetos permitidos en una sola solicitud. El límite depende del modelo de límite de velocidad: para la mayoría de los clientes, cada solicitud admite hasta 75 objetos en total, combinando attributes, events y purchases. Para los clientes con límites de velocidad heredados, cada matriz admite hasta 75 objetos de forma independiente. Para más información, consulta POST: Crear y actualizar usuarios. |
400 The max number of external_ids and aliases per request was exceeded |
Se produce al llamar a más de 50 ID externos. |
400 The max number of ids per request was exceeded |
Se produce al llamar a más de 50 ID externos. |
400 No message to send |
No se ha especificado ninguna carga útil para el mensaje. |
400 Slideup Message Length Exceeded |
El mensaje de deslizamiento hacia arriba contiene más de 140 caracteres. |
400 Apple Push Length Exceeded |
La carga útil JSON supera los 1912 bytes. |
400 Android Push Length Exceeded |
La carga útil JSON supera los 4000 bytes. |
400 Bad Request |
No se puede analizar la fecha y hora de send_at. |
400 Bad Request |
En tu solicitud, in_local_time es verdadero, pero time ya ha pasado en la zona horaria de tu empresa. |
401 Unauthorized |
Clave de API no válida. Entre las causas más comunes se incluyen: - Encabezado Authorization ausente o mal formado. El valor del encabezado debe ser Bearer seguido de un espacio y, a continuación, tu clave de API: Authorization: Bearer YOUR-API-KEY. Los errores más comunes son omitir Bearer, omitir la clave después de Bearer o poner el valor entre comillas.- Endpoint REST incorrecto. Estás enviando la solicitud a la instancia incorrecta. Por ejemplo, si tu cuenta está en nuestra instancia de la UE ( https://dashboard-01.braze.eu), la solicitud debe enviarse a https://rest.fra-01.braze.eu.- Permisos insuficientes. Cada clave de API está limitada a un espacio de trabajo y a un conjunto de permisos específicos. Comprueba los permisos de la clave en Configuración > Claves de API en el panel. - Clave de API incorrecta. Las claves de API son específicas de cada espacio de trabajo. Una clave de un espacio de trabajo no puede utilizarse para autenticar solicitudes de otro espacio de trabajo. |
403 Forbidden |
El plan de tarifas no lo admite o la cuenta está desactivada por otro motivo. |
403 Access Denied |
La clave de API REST que estás utilizando no tiene permisos suficientes. Entre las causas más comunes se incluyen:
|
404 Not Found |
URL no válida. |
415 Unsupported Media Type |
El encabezado de solicitud Content-Type falta o es incorrecto. En la página Configuración, añade Content-Type con el valor application/json. |
429 Rate Limited |
Se ha superado el límite de velocidad. |
Error al analizar el cuerpo de la solicitud
Braze devuelve HTTP 400 cuando el cuerpo de la solicitud no es un JSON válido. Esto se aplica a los endpoints REST que aceptan un cuerpo JSON, como POST, PUT y PATCH.
El campo error incluye un mensaje que indica que debes pasar application/json válido en el cuerpo de la solicitud. También puede aparecer Error while parsing request body. Please check your syntax.
Entre las causas más comunes se incluyen comas finales, comentarios dentro del JSON, cadenas entre comillas simples, una { de apertura adicional antes de la carga útil o el envío de una cadena concatenada en lugar de un objeto codificado en JSON.
Antes de volver a intentarlo:
- Valida la carga útil con un validador de JSON.
- Establece
Content-Type: application/jsony envía JSON codificado en UTF-8. - Confirma que tu cliente HTTP codifica el objeto en JSON en lugar de concatenar cadenas sin procesar.
Para conocer el tamaño de la carga útil y los límites de objetos por solicitud de /users/track, consulta ¿Por qué recibo 400 Bad Request con un error de sintaxis o de análisis?.