Ir al contenido

Errores ​

Todos los errores tienen la misma forma y un code estable. Decide qué hacer con code, nunca con message: los mensajes son para personas y pueden cambiar.

json
{
  "error": {
    "code": "INSTANCE_NOT_CONNECTED",
    "message": "The instance is not connected. Connect it before sending messages.",
    "request_id": "req_01EXAMPLEEXAMPLEEXAMPLE0"
  }
}

request_id identifica la petición: cítalo cuando contactes a soporte. Los errores de validación añaden los campos que fallaron:

json
{
  "error": {
    "code": "VALIDATION_FAILED",
    "message": "The request is invalid.",
    "request_id": "req_01EXAMPLEEXAMPLEEXAMPLE0",
    "details": { "fields": { "name": ["The name field is required."] } }
  }
}

Errores que cualquier operación puede devolver ​

EstadoCódigoSignificado
400WORKSPACE_MISMATCHEl header X-Zappio-Workspace nombra otro espacio de trabajo.
401UNAUTHENTICATEDFalta el header Authorization: Bearer.
401INVALID_API_KEYLa clave no existe o fue revocada.
403INSUFFICIENT_SCOPELa clave no tiene el scope de la operación.
403WORKSPACE_SUSPENDEDEl espacio de trabajo está suspendido.
404NOT_FOUNDLa ruta no existe (los recursos desconocidos usan los códigos específicos de abajo).
405METHOD_NOT_ALLOWEDLa ruta no admite ese método.
413PAYLOAD_TOO_LARGEEl cuerpo de la petición supera el límite del servidor.
422VALIDATION_FAILEDFalta un campo o es inválido (details.fields).
429RATE_LIMITEDDemasiadas peticiones; ver Rate limits.
500INTERNAL_ERRORFalla inesperada; reintenta más tarde y cita el request_id.

Errores de operaciones específicas ​

EstadoCódigoDóndeSignificado
402TRIAL_LIMIT_REACHEDenviar mensajeSe usaron los mensajes de la prueba.
402SUBSCRIPTION_REQUIREDenviar mensaje, crear instanciaEl espacio de trabajo necesita una suscripción activa.
402SUBSCRIPTION_PAST_DUEenviar mensajeEl último pago falló y terminó el periodo de gracia.
403INSTANCE_LIMIT_REACHEDcrear instanciaSe alcanzó el límite de instancias del plan.
403WEBHOOK_LIMIT_REACHEDcrear webhookSe alcanzó el límite de webhooks del plan.
404INSTANCE_NOT_FOUNDcualquier operación con una instanciaNo existe esa instancia en tu espacio de trabajo.
404MESSAGE_NOT_FOUNDconsultar mensaje, multimediaNo existe ese mensaje.
404GROUP_NOT_FOUNDenviar mensajeEl id grp_ no es un grupo de esa instancia.
404MEDIA_NOT_AVAILABLEmultimediaEl mensaje no tiene un archivo guardado.
404WEBHOOK_NOT_FOUND, WEBHOOK_DELIVERY_NOT_FOUNDwebhooksNo existe ese webhook o esa entrega.
409INSTANCE_NOT_CONNECTEDenviar mensajeLa instancia no está conectada.
409INVALID_INSTANCE_STATEconectar, desconectar, cerrar sesiónLa transición no está permitida desde el estado actual.
409INSTANCE_BUSYconectar, desconectar, cerrar sesión, eliminarHay otra operación en curso sobre la instancia; reintenta.
409QR_NOT_AVAILABLEQRLa instancia no está esperando vincularse.
409WEBHOOK_DISABLEDprobar, reintentarEl webhook está deshabilitado; habilítalo primero.
409WEBHOOK_RETRY_NOT_ALLOWEDreintentar entregaLa entrega sigue en curso, o su webhook está deshabilitado o eliminado.
415INVALID_MEDIA_TYPEenviar mensajeEl formato no se acepta para ese tipo de mensaje.
413MEDIA_TOO_LARGEenviar mensajeEl archivo supera el límite de ese tipo.
422INVALID_RECIPIENTenviar mensajeto no es un número internacional ni un id de grupo.
422UNSUPPORTED_MESSAGE_TYPEenviar mensajeEl tipo es desconocido o la instancia no puede enviarlo.
422INVALID_IDEMPOTENCY_KEYenviar mensajeEl header Idempotency-Key tiene un formato inválido.
422IDEMPOTENCY_KEY_REUSEDenviar mensajeLa clave ya se usó con una petición distinta.
422INVALID_WEBHOOK_URLcrear o editar webhookLa URL no está permitida (esquema, puerto o host).
429SEND_BACKLOGenviar mensajeLa instancia tiene demasiados mensajes esperando; reintenta tras Retry-After.
502 / 503GATEWAY_ERROR, GATEWAY_UNAVAILABLEconectar, desconectar, cerrar sesión, eliminarEl servicio de mensajería falló o no está disponible; reintenta más tarde.

Los errores de cada operación también aparecen en la referencia.

Qué hacer según el estado ​

  • 4xx: el problema está en la petición. Corrígela; reintentar igual no ayuda (salvo 429 y 409 INSTANCE_BUSY).
  • 429: espera Retry-After segundos.
  • 5xx: falla del lado de ZAPPIO. Reintenta con espera creciente y, si persiste, escribe a soporte con el request_id. Para envíos, reintenta con la misma Idempotency-Key.