- Comience ya
- Crear
- Añadir un agente de IA a un flujo de trabajo
- Llamar a una API externa
- Procesar correos electrónicos entrantes
- Crear un flujo de trabajo de notificación de Slack
- Añadir aprobación humana a un flujo de trabajo
- Crear un flujo de trabajo de agente de chat
- Gestionar errores
- Fundamentos de la depuración
- Intervención humana: escalada o paso humano
- Evaluar tus flujos de trabajo
- Implementar y ejecutar
- Ejemplos
- Referencia
Gestionar errores
Dirige los nodos fallidos a una ruta de error, registra los detalles del error, reintenta los fallos temporales y finaliza el flujo de trabajo limpiamente en errores irrecuperables.
Lo que creas
Un flujo de trabajo que enruta un nodo fallido a una ruta independiente, registra el fallo con contexto útil, reintenta los fallos temporales cuando tiene sentido y finaliza limpiamente cuando el error es irrecuperable. El resultado es un patrón que se adapta a cualquier flujo de trabajo existente.
Antes de comenzar
- Un flujo de trabajo existente con al menos un nodo que puede fallar y tiene una pestaña Gestión de errores , por ejemplo, una solicitud HTTP o un nodo de extracción.
Nodos utilizados
- Solicitud HTTP: el nodo que puede fallar en este ejemplo.
- Script: registra los detalles del error.
- Terminar: finaliza el flujo de trabajo en caso de errores irrecuperables.
Pasos
Con una configuración de agente de codificación, puedes omitir los pasos manuales. Pregúntelo:
Add error handling to the HTTP Request node in this Maestro Automate workflow: connect its error path to a Script node that logs the error message, retry temporary failures, and end the run with a Terminate node when the error can't be recovered.
Add error handling to the HTTP Request node in this Maestro Automate workflow: connect its error path to a Script node that logs the error message, retry temporary failures, and end the run with a Terminate node when the error can't be recovered.
A continuación, abre el flujo de trabajo en el lienzo, compruébalo con los siguientes pasos y pruébalo. Configurar tu agente de codificación describe la configuración.
1. Conecta el manipulador de errores del nodo
De forma predeterminada, un nodo fallido detiene todo el flujo de trabajo. Para gestionar el fallo en su lugar:
- Abre el flujo de trabajo en el lienzo y selecciona el nodo que puede fallar.
- Abre la pestaña Gestión de errores y activa Habilitar gestión de errores. Aparece un Controlador de error debajo del controlador de salida principal.
- Selecciona el + en el manipulador de Error , busca Script y selecciónalo.
Esto crea una ruta de error. Cuando el nodo falla, la ejecución sigue esta ruta en lugar de detener el flujo de trabajo. Un nodo sin un Controlador de error no admite la gestión de errores, y un fallo allí detiene el flujo de trabajo y aparece en la pestaña Incidentes .
2. Registrar el error
En el nodo Script de la ruta de error, lee el objeto de error $vars.<node>.error:
const error = $vars.httpRequest1.error;
console.log('Step failed:', error.message);
console.log('Code:', error.code, '| HTTP status:', error.status);
return { logged: true };
const error = $vars.httpRequest1.error;
console.log('Step failed:', error.message);
console.log('Code:', error.code, '| HTTP status:', error.status);
return { logged: true };
El objeto de error solo se rellena en la ruta de error. La página Gestión de errores enumera el conjunto completo de campos de error.
3. Reintentar fallos transitorios (opcional)
Si es probable que el fallo sea temporal, como una interrupción de la red o un límite de velocidad, volver a intentarlo antes de darse por vencido ayuda. El nodo Solicitud HTTP tiene reintentos integrados: establecer Recuento de reintentos en su pestaña Avanzado hace que vuelva a intentar la solicitud tantas veces antes de desencadenar el controlador de error. Solo el fallo final redirige a la ruta de error.
Reintentar solo las operaciones que pueden ejecutarse de forma segura más de una vez. Reintentar un nodo con efectos secundarios, como escribir datos o enviar un mensaje, puede crear duplicados.
4. Terminar si no se puede recuperar
En la ruta de error, después del nodo Script, añade un nodo Terminar . Para devolver la descripción del fallo, selecciona Añadir variable de salida en el nodo y dale un valor que incluya el error, por ejemplo $vars.httpRequest1.error.message.
El flujo de trabajo termina en el nodo Terminar y la ejecución aparece en Supervisar ejecuciones.
5. Probar y depurar
Para desencadenar la ruta de error intencionadamente:
- Establece temporalmente la URL en el nodo de solicitud HTTP en un valor no válido (por ejemplo,
https://this-will-fail.example.com). - Select Run Debug (▶) in the bottom toolbar of the canvas and verify that the execution trace follows the error path.
- Restaure la URL correcta.
Comprueba la salida de la consola del nodo de script en el seguimiento para confirmar que se registran los detalles del error.
Resultado
El flujo de trabajo enruta los fallos a la ruta de error, registra los detalles del error, opcionalmente reintenta los fallos temporales y termina limpiamente con un estado de fallo descriptivo. Una URL no válida en el nodo de solicitud HTTP confirma que la ruta de error funciona.
Ampliar este flujo de trabajo
- Send an alert on failure: on the error path, before the Terminate node, add an HTTP Request or connector node to notify a Slack channel or create a ServiceNow incident.
- Continuar en lugar de terminar: si el paso no es crítico, haz que la ruta de error establezca un valor alternativo y vuelva a unirse a la ruta principal en lugar de terminar.
- Aplica este patrón ampliamente: la página Gestión de errores describe más patrones, como registrar y continuar, valores alternativos y escalada.
Próximos pasos
- Implementar un flujo de trabajo: hace que el flujo de trabajo se ejecute sin ti.
- Guías: más flujos de trabajo para crear.
- Comunidad: comparte lo que creaste o pide ayuda a otros creadores.