Ir al contenido

Motivos de envío (reason_code)

Códigos de error · 13 códigos · catálogo del 2026-10-21

Clase de un fallo de envío (SendReasonCode en src/channels/send/channel-send.contracts.ts). Viaja como reason_code junto al code concreto en toda respuesta de error del envío, para que el front y la IA sepan QUÉ HACER sin conocer cada código. Algunos también son el code de una respuesta.

Para toda la familia

Lo que un código no dice lo hereda de aquí.

Cómo se detecta
En la respuesta de error del envío (reason_code) y en channel_messages.error_json de un mensaje fallido.
Qué hacer
Decide por el motivo: WINDOW_CLOSED → plantilla; *_RATE_LIMITED → esperar retry_after_seconds (o retry_at); CHANNEL_NOT_SENDABLE → reconectar o configurar la cuenta; INVALID_COMMAND → el mensaje está mal armado; PROVIDER_REJECTED → leer el code de Meta.
13 códigos

Códigos

CHANNEL_NOT_SENDABLE

HTTPmotivoHTTP 409

La cuenta de canal no puede enviar ahora: apagada, sin token, sin configurar o la salida no es de Boost.

CONTACT_RATE_LIMITED

motivo

Tope de envíos automáticos a un mismo contacto. Hoy nace en modo observar (would_deny, el mensaje sale); corta solo con CHANNELS_SEND_CONTACT_CAP_MODE=enforce.

HUMAN_AGENT_NOT_ALLOWED

motivo

La etiqueta HUMAN_AGENT (responder hasta 7 días en Messenger/Instagram) solo la puede usar una persona, no una automatización.

INVALID_COMMAND

motivo

El pedido de envío está mal armado (falta un campo, contenido no soportado, límite excedido): reintentar igual no sirve.

MEDIA_NOT_AVAILABLE

motivo

El archivo a enviar no se pudo obtener (no existe, está vacío o es demasiado grande para el canal).

NOT_IN_SCOPE

motivo

El envío no le toca a este camino (otra cuenta, otro chat, un hilo que la salida directa no creó).

PROVIDER_RATE_LIMITED

motivo

Meta (o SES) está limitando: esperar el tiempo que dice retry_after_seconds. Reintentar antes no adelanta nada.

PROVIDER_REJECTED

motivo

Meta o SES rechazó el mensaje: el code concreto (CHANNEL_SEND_META_<n>, EMAIL_PROVIDER_REJECTED) dice por qué.

RECIPIENT_SUPPRESSED

internodetallemotivo

El destinatario no quiere recibir (se dio de baja de marketing en WhatsApp, o su correo rebotó o se quejó): no se le vuelve a escribir.

TEMPLATE_RATE_LIMITED

motivo

Tope de plantillas por contacto o por tiempo: hay que esperar antes de mandar otra.

UNKNOWN_DELIVERY

motivo

No se sabe si el mensaje salió: Meta no respondió a tiempo. Es un resultado de entrega, no una negación: no se reintenta solo para no duplicar.

Cómo detectarlo
Render: channel_send_unknown_delivery. Base: channel_messages con este error_code.
Qué hacer
Revisar el chat en WhatsApp o esperar el estado de Meta antes de reenviar a mano.

WINDOW_CLOSED

motivo

La ventana de 24 h de WhatsApp está cerrada: solo se puede mandar una plantilla aprobada.

Texto generado desde el catálogo de errores de BoostAPI. Para corregirlo, se cambia allá y se sincroniza: verMantener esta documentación. También enMarkdown.