AltScore
Notices

Notice Codes

The code is the stable identity of a notice. The message may be reworded, the reason changes with every occurrence; the code does not. The Chat panel translates it into a short label, and the Flow Notices screen groups by it.

Six codes are newer than the panel's translations and are shown as their raw snake_case identifier: files_over_limit, unsupported_media_type, attachments_dropped, destination_cannot_hold_files, variable_type_mismatch and journey_not_served. They behave like any other code; only the label is missing. Some notices carry no code at all (OTP failures, the ai-router, expiration, a conversation without a flow) and show their message alone; they are covered in the list of common notices below.

The codes

CodeLabel in the panelLevelWhen the engine emits it
node_okNode processedinfoWritten only by Extract Information, Packages and Read Incoming when they finish well; no other node leaves node_ok any more (a Goal node with a goal leaves goal_reached, below). You may still see it on old conversations from other nodes.
goal_reachedGoal reachedinfoA Goal node with a goal configured was reached. Message: Meta alcanzada: name, with the goal's name from the catalog, or its key when the goal is not in the catalog (deleted or unknown; a warning notice follows it). Details carries the goal key, name and description and the flow version. Written only the first time the conversation reaches that goal; later passes are recorded for Conversation Insights but leave no new notice. Nothing to fix; it shows where each goal was reached. Conversation Insights does not count from notices but from its own records.
node_warningNode with warningwarningThe node completed but produced an outcome you must know about: a message that uses a variable nobody wrote, a step that answered "no" (the person is not a customer, the account is not in the CMS), a file consumer that received a list and took the first file. Message: Node 'type' completed with warning; the reason says what happened and what to check.
node_failedNode failederror, or warning when the cause is a Meta rejectionThe node failed and the flow continued through its Error handle. Reason: El nodo type (description) falló: cause. Continúa por el handle de Error hacia el nodo X. With a real exception it carries the traceback. When the cause is a WhatsApp rejection, the message is Meta's explanation and the level is warning. See Connections.
node_failed_no_error_handleNode failed, no error handleerror, or warning when the cause is a Meta rejectionSame failure, but the node had no Error handle connected. The reason ends with where the customer went, and that depends on the channel: on WhatsApp, la conversación se terminó y se intentó transferir a un agente; on web and email, el cliente fue enviado al bot por defecto X or el conector no tiene bot por defecto y la conversación quedó sin flujo activo. Fix: connect the Error handle; the publish gate warns about it.
stage_failedStage failederrorAn exception escaped inside one processing stage of a channel. The message starts with the layer and stage in brackets, [conversation_manager / whatsapp.process_otp_verification_response], followed by a Spanish description of the step (Falló la verificación del código OTP (WhatsApp)). Carries the traceback and, in Details, the layer and stage.
unhandled_errorUnhandled errorerrorUnhandled error in conversation processing. Nothing in the flow caught the exception. Carries the traceback; share the conversation identifier with AltScore support.
flow_terminatedFlow terminatedinfoFlow terminated. Not a failure. The reason says why: end_node_reached, human_takeover_outside_hours, or a node with no outgoing connection (No next_node for type). The conversation moves to the connector's default bot, if any. See End and Human Takeover.
flow_cycleFlow cyclewarningThe flow loops: too many nodes traversed for a single message. The reason names the last node visited and asks you to check the connections leaving the nodes on that path, Error handles included: one of them leads back to a node already visited.
jump_to_without_destinationJump without destinationerrorThe jump-to node has no destination, the flow stops here. Set the target flow (and target node when the jump goes to a specific node) on the node, or connect the branch that reaches it elsewhere. See Jump To.
interrupted_by_shutdownInterrupted by deploywarningProcessing interrupted by instance shutdown. A deploy cancelled the node while it was running. The conversation is flagged and the node re-runs on the next inbound message or on the recovery sweep; nothing to fix in the flow.
answer_without_destinationAnswer without destinationwarningAsk File: the customer sent files and the node has neither Save to Variable nor Save to Entity, so the answer was discarded (Files received and stored nowhere). Also when the destination is an address and the node does not say which one (File not attached: the node does not say which address).
answer_unresolvedAnswer unresolvedwarning; error when the file could not be written to storageAsk File: the files arrived but no URL could be resolved, or an email reply carried no attachment (warning); or the file could not be read from the channel or written to storage (error, with traceback). The customer was asked to send it again.
entity_without_customerEntity without customerwarningAsk File files the answer on the customer's identity, field or document, but nothing identified the customer yet. With a variable configured the file is kept there and only the entity write is skipped; without one the file is lost. Identify the customer earlier (login, create-borrower) or take the entity off the node.
files_over_limit(raw)warningAsk File on web or email: the customer sent more files than File limit; only the first ones were kept.
unsupported_media_type(raw)warningAsk File: the customer sent a video or a voice note; the node only accepts images and documents, so it sent its invalid-file message and asked again.
attachments_dropped(raw)warningAsk File: several files arrived and the variable is typed attachment, so only the first was kept. Declare the variable as array to keep all of them.
destination_cannot_hold_files(raw)warningAsk File files the answer on a borrower field, and borrower fields hold a value, not attachments. Save it to a document, an identity or a variable instead.
document_processing_not_enabledDocument not validated: its type has no processing enabledinfoA node that stores the file in a document was set to validate it (Validate the document when saved on Ask File, OCR Verification or Customer Update, or Validate the document on Ask for Document), but the document type has no processing enabled, so the file was stored without validation. Enable it in the data model's Validation tab, or turn validation off on the node.
document_processing_not_queuedDocument validation could not be queuedwarningSame nodes: the file is stored in the document, but the background validation could not be queued. Validate it by hand from the customer's documents, on the file's row. When Ask for Document waits for the result, it also leaves document_validation_unavailable and leaves through Could not be validated.
document_processing_unsupportedDocument not validated: the file is not a PDF or an imagewarningOnly Ask for Document with Continue without waiting: the file is stored in the document, but only PDFs and images (JPG, PNG, WEBP, HEIC) are validated. Ask for the file in one of those formats, or review it by hand. While waiting for the result, such a file is refused instead (document_validation_file_refused).
document_validation_pendingWaiting for the document validationinfoAsk for Document with Wait for the result: the files were stored and the conversation started waiting for the verdict, up to 6 minutes. The reason says the attempt and the number of files; Details carries the deadline. Nothing to fix; it marks the start of the wait.
document_validation_timed_outThe document validation did not answer within 6 minuteswarningAsk for Document: no result arrived within 6 minutes, so the node left through Could not be validated. If the result arrives later, it stays on the document. Check it in the customer's documents; files with many pages take longer to read.
document_validation_unavailableThe document could not be validatedwarningAsk for Document: there is no verdict and the node left through Could not be validated. The reason says why: the document type's processing is off or the validation could not be queued, the reading of a file failed, the conversation has no identified customer, the channel cannot wait (email), the wait could not be kept or finished, or the verdict was Not valid or Needs review and that output is not connected. Fix the cause the reason names.
document_validation_retryDocument not valid: asked for it againinfoAsk for Document: the files of this attempt were not valid and the customer had attempts left, so the node sent the Message to ask for it again. The reason says which attempt failed; Details carries the reasons. Nothing to fix; if it repeats, check that the message says what is wrong.
document_validation_not_routedValidation result not applied: the conversation went to an agentinfoAsk for Document: an agent took the conversation while its document was being validated, so the result was not applied and the flow did not move. The result stays on the document. Nothing to fix; the agent continues the conversation.
document_validation_file_refusedFile not stored: not a PDF or an imagewarningAsk for Document with Wait for the result: only PDFs and images (JPG, PNG, WEBP, HEIC) are validated, so a file of another type was not stored in the document. If it was the only file, the customer got the Invalid Message and was asked again without spending an attempt; if it came with other files, only those are validated. Say in the Upload Message that you expect a PDF or a photo.
delivery_failedDelivery failedwarning for rejections about the recipient or the flow; error for account, token or Meta-side failuresWhatsApp did not deliver a message. The message is Meta's rejection explained in Spanish, the reason carries the explanation, the action, Meta's code in brackets and the recipient; Details carries Meta's code. See the list below.
variable_type_mismatch(raw)warningA node saved a value that does not fit the type the flow declares for the variable. The value was saved and the declared type kept. Review the declaration or the node that writes it. See Variables.
journey_not_served(raw)warningAn enabled journey cannot be shown in the web channel: a rule fails, it was never checked against the flows, or another journey has the same entry flow. Message: El recorrido configurado no se puede mostrar; the reason sums up the failing rules and Details carries the journey id and each rule with its flows. Written once each time the customer opens the flow, and only if their browser already had a conversation. See Rules and Status.

The most common notices

The texts quoted here are what the engine writes, in the language it writes them (Spanish or English); they are not translated so you can recognize them in the panel.

1. WhatsApp rejected the message (delivery_failed)

Each Meta code has its own explanation and action. The most frequent:

Meta codeMessageAction
131047 / 470WhatsApp no entregó el mensaje: la ventana de 24 horas está cerradaPara escribirle primero hay que usar una plantilla aprobada (nodo o campaña de template); los mensajes libres solo llegan dentro de las 24 h posteriores al último mensaje del cliente.
131049Meta limita la frecuencia de marketing a este usuarioNo reintentes: no llegará hasta que Meta libere el cupo. Usa una plantilla de utilidad si el mensaje es transaccional, o espera al siguiente periodo.
131050El cliente bloqueó los mensajes de marketingMárcalo como no contactable por marketing en la base; solo puedes enviarle plantillas de utilidad o autenticación.
131056Demasiados mensajes al mismo número en poco tiempoReduce la cantidad de nodos de mensaje seguidos (agrúpalos en uno) y no reintentes: cada reintento empeora el límite.
132015Meta la pausó por baja calidad (template)Espera a que Meta la reactive o crea una versión nueva con otro texto. Pausa las campañas que la usen.
132016Meta la deshabilitó de forma permanente (template)Crea y aprueba una plantilla nueva y actualiza los nodos y campañas que usaban esta.
131026El número no puede recibir mensajesVerifica el número con el cliente (país y formato) o usa otro canal de contacto.
unknownMeta rechazó el envío (code)Busca el código en la documentación de códigos de error de la Cloud API de Meta; si se repite, comparte el id de la conversación con soporte de AltScore.

Rejections about the recipient (window, frequency, opt-out, number) or about the flow (templates, parameters) are warnings. Account, token and Meta-side failures are errors. Related pages: Message, Campaigns, Channel connectors.

2. A message uses a variable nobody wrote (node_warning)

The customer receives the literal {{nombre}}; the engine never invents a value. Reason: El mensaje del nodo message usa {{nombre}} y ningún nodo la escribió antes; revisar el flujo. One notice per node, naming every unresolved variable in it. Check that the node that writes the variable runs before this one and uses the same name. See Message and Variables.

3. A variable received a value of another type (variable_type_mismatch)

Message: La variable 'monto' recibió un valor que no es number. Reason: La variable 'monto' está declarada como number en el flujo y el nodo guardó un valor string; se guardó el valor y se conservó el tipo declarado. Revisar la declaración de la variable o el nodo que la escribe. The declared type always wins; a condition downstream compares with the declared type. See Variables.

4. A node failed and had no Error handle (node_failed_no_error_handle)

Reason: El nodo http-request (Consultar saldo) falló: cause. Como no tiene handle de Error conectado, el cliente fue enviado al bot por defecto flow-id. How the reason ends depends on the channel. On WhatsApp: la conversación se terminó y se intentó transferir a un agente; the customer receives the handoff-to-agent message or, when no agent is available, the one saying there was a problem. On web and email: el cliente fue enviado al bot por defecto flow-id or, without a default bot, el conector no tiene bot por defecto y la conversación quedó sin flujo activo. Connect the Error handle so the flow decides what the customer sees. The publish gate warns about this before publishing.

A related warning without code: El nodo type (description) no pudo enviar su pregunta y la conversación quedó esperando en él — the node failed without explaining why; check the channel connector and the node configuration, resend the question or move the conversation to another node.

5. The conversation has no active flow

The customer wrote and the conversation's flow was gone. Three outcomes, three levels:

  • Info — La conversación no tenía flujo activo (terminó por: end_node_reached); se reinició en el bot por defecto flow-id.
  • Warning — El flujo flow-id ya no existe o está inactivo; la conversación se redirigió al bot por defecto flow-id. The flow was deleted or unpublished while conversations were still on it.
  • Error — El cliente escribió pero la conversación no tiene flujo activo y el connector no tiene bot por defecto: el mensaje se ignoró. Configurar un bot por defecto o reasignar la conversación. Somebody is writing and nobody answers.

Set a default bot on the channel connector so this never reaches error.

6. The conversation expired for inactivity

Conversación expirada por inactividad tras 30 min en el nodo ask-question: se envió 'timeout message' y se redirigió a flow-id (info). Without a default bot: ... y no hay bot por defecto: la conversación quedó sin flujo (warning). The timeout and its message are set on the channel connector.

7. Ask File could not store the answer

All from Ask File, all warnings except the last case:

  • answer_without_destination — Files received and stored nowhere: configure Save to Variable or Save to Entity.
  • entity_without_customer — The file was saved to the variable but not to the customer's record or The file was not stored: the conversation has no customer yet: identify the customer before the node.
  • attachments_dropped — Several files arrived and the variable holds one: declare the variable as array.
  • files_over_limit — More files than the node accepts: only the first File limit were kept.
  • unsupported_media_type — The customer sent a video; the node only accepts images and documents.
  • destination_cannot_hold_files — The file was not stored: a borrower field cannot hold files.
  • answer_unresolved — The customer's file could not be stored: the file could not be read from the channel or written to storage; the customer was asked again. This case is an error with a traceback; the other variants of the same code (no URL resolved, email reply without attachment) are warnings.

8. OTP failed (no code)

Message: OTP verification failed (warning). Reasons:

  • Código expirado: se envió hace 240s y la ventana configurada (expirationTimeoutSeconds) es de 180s. Ampliar la ventana o revisar la demora de entrega del canal.
  • Código rechazado: se agotaron los 3 intentos configurados (maxAttempts).
  • El OTP verificado no corresponde al punto de contacto: el contacto cambió entre el envío y la verificación.

A different warning: OTP answer received but there is no authorization to verify against — the OTP node ran before any node created the authorization; add an Opt In or Read Authorization node earlier that writes that variable. See OTP Verification and POC Verification.

9. Login answer without a prompt (no code)

Login answer received but the login prompt was never sent (warning). The usual cause is a Login node without an identity selected, which already left its own notice. The flow takes its failure path.

10. The ai-router could not route (no code)

Message: El nodo ai-router no pudo enrutar la respuesta del cliente. Reasons, all warnings unless noted:

  • El nodo ai-router no tiene rutas configuradas, así que no hay a dónde mandar la respuesta del cliente; agregar al menos una ruta al nodo. La conversación sigue esperando en el nodo.
  • El cliente envió un mensaje sin texto (adjunto, sticker o vacío) y el nodo ai-router solo clasifica texto; la conversación sigue esperando un mensaje de texto.
  • La clasificación por IA no devolvió ninguna ruta para la respuesta del cliente; se toma la última ruta del nodo como fallback. Revisar las descripciones de las rutas si se repite.
  • La ruta 'X' que eligió la IA no tiene ningún nodo conectado; conectar esa salida en el editor. La conversación sigue esperando en el nodo.
  • La clasificación por IA falló con ...; revisar el proveedor de IA y las rutas del nodo (error).

See AI Router.

11. The flow loops (flow_cycle)

The flow loops: too many nodes traversed for a single message. One connection on the path, an Error handle included, leads back to a node already visited. See Connections.

12. Jump without destination (jump_to_without_destination)

The jump-to node has no destination, the flow stops here (error). Set the target flow on the Jump To node, or connect the branch that reaches it to another node.

13. Interrupted by a deploy (interrupted_by_shutdown)

Processing interrupted by instance shutdown (warning). The node re-runs on the next inbound message or on the recovery sweep. Nothing to fix.

14. A file consumer found no file (node_warning / node_failed)

Nodes that read a file — Extract Information, Document Verifications, OCR Verification and the others — report what they found in the variable:

  • The variable 'archivo' has no file, so node 'extract-information' has no file to read. Check that the ask-file node that captures it runs earlier in the flow and writes that same variable name.
  • The variable 'archivo' holds 3 files; node 'extract-information' only uses the first one. Turn off multipleFiles in the ask-file that writes it, or read the files with a node that accepts several.
  • The file URL expired and could not be renewed. Ask the customer for the file again, or run the node closer to the ask-file that captures it. — the engine renews expired links to its own storage on its own; this appears only when it could not.

15. WhatsApp could not download the customer's file (no code)

WhatsApp no pudo descargar la media enviada por el usuario (error). Reason: [131052] Meta's message. The customer is told No pudimos recibir tu archivo. WhatsApp reportó: "..." Por favor, vuelve a enviarlo. Ask for the file again, smaller or in another format. See Ask File.