Manejo de errores
Al diseñar la lógica de tus flujos de trabajo, es una buena práctica anticipar posibles errores y definir cómo manejarlos de forma adecuada. Mediante la configuración de un flujo de trabajo de error, puedes controlar cómo responde n8n cuando falla la ejecución de un flujo de trabajo.
Depuración de errores
Para investigar ejecuciones fallidas, puedes:
- Consultar el historial de ejecuciones, ya sea de un flujo de trabajo específico o de todos los flujos a los que tengas acceso. También puedes cargar los datos de la última ejecución en tu flujo de trabajo actual.
- Habilitar el Log Streaming (transmisión en tiempo real de registros).
Crear y configurar un flujo de trabajo de error
Para cada flujo de trabajo, puedes configurar un flujo de trabajo de error en Configuración del flujo de trabajo, que se ejecutará automáticamente si la ejecución falla. Esto te permite, por ejemplo, enviar notificaciones por correo electrónico o alertas en Slack cuando ocurra un error. El flujo de trabajo de error debe comenzar con un nodo Error Trigger.
Varios flujos de trabajo pueden compartir el mismo flujo de trabajo de error.
- Crea un nuevo flujo de trabajo y añade un nodo Error Trigger como primer nodo.
- Dale un nombre al flujo de trabajo, por ejemplo,
Error Handler. - Haz clic en Guardar.
- En el flujo de trabajo al que deseas asignar este flujo de trabajo de error:
- Haz clic en Opciones
> Configuración. - En el campo Flujo de trabajo de error, selecciona el flujo que acabas de crear (por ejemplo, Error Handler).
- Haz clic en Guardar. A partir de ahora, cuando falle este flujo de trabajo, se ejecutará automáticamente el flujo de trabajo de error asociado.
- Haz clic en Opciones
Datos del error
Los datos de error que recibe el nodo Error Trigger tienen el siguiente formato por defecto:
[
{
"execution": {
"id": "...",
"url": "...",
"retryOf": null,
"error": {
"name": "NodeOperationError",
"message": "",
"cause": {},
"node": {}
},
"lastNodeExecuted": "Node With Error",
"mode": "manual"
},
"workflow": {}
}
]
Los siguientes campos no siempre están presentes:
execution.id: Solo existe si la ejecución se ha guardado en la base de datos. Si el error ocurre en el nodo disparador (durante la activación del flujo de trabajo), la ejecución no se guarda y este campo no estará disponible.execution.url: Igual que el anterior, requiere que la ejecución se haya guardado en la base de datos. No estará presente si el error ocurre en el nodo disparador.execution.retryOf: Solo existe si la ejecución actual es un reintento de una ejecución previa que falló.
Si el error proviene del nodo disparador del flujo de trabajo (y no de una etapa posterior), la estructura de los datos enviados al flujo de trabajo de error es diferente: el campo execution contiene menos información, mientras que aparece un campo trigger con más detalles:
{
"trigger": {
"error": {
"name": "WorkflowActivationError",
"cause": {},
"timestamp": 1654609328787,
"message": "",
"node": {}
},
"mode": "trigger"
},
"workflow": {}
}
Forzar un fallo en la ejecución con el nodo Stop And Error
Una vez que hayas creado y configurado un flujo de trabajo de error, n8n lo ejecutará automáticamente cuando ocurra un fallo, normalmente debido a errores en la configuración de los nodos o por un consumo excesivo de recursos (como memoria insuficiente).
También puedes añadir un nodo Stop And Error en tu flujo de trabajo para provocar un fallo de forma controlada según condiciones que definas, lo que activará el flujo de trabajo de error asociado.