Fehlerbehandlung
Beim Entwurf der Workflow-Logik ist es eine bewährte Praxis, mögliche Fehler im Voraus zu berücksichtigen und eine robuste Fehlerbehandlung einzurichten. Durch die Konfiguration eines Error-Workflows kannst du steuern, wie n8n auf fehlgeschlagene Workflow-Ausführungen reagiert.
Fehleranalyse
Um fehlgeschlagene Ausführungen zu analysieren, kannst du Folgendes tun:
- Zeige deine Ausführungsprotokolle an – entweder für einen einzelnen Workflow oder für alle Workflows, auf die du Zugriff hast. Du kannst auch die Daten der letzten Ausführung in deinen aktuellen Workflow laden.
- Aktiviere den Log Stream.
Erstellen und Einrichten eines Error-Workflows
Für jeden Workflow kannst du in den Workflow-Einstellungen einen Error-Workflow konfigurieren, der automatisch ausgeführt wird, sobald die Ausführung fehlschlägt. So kannst du beispielsweise bei einem Fehler eine E-Mail oder eine Slack-Benachrichtigung versenden. Der Error-Workflow muss mit einem Error Trigger-Knoten beginnen.
Mehrere Workflows können denselben Error-Workflow gemeinsam nutzen.
- Erstelle einen neuen Workflow und füge als ersten Knoten einen Error Trigger hinzu.
- Benenne den Workflow, z. B.
Error Handler(Fehlerbehandler). - Klicke auf Speichern.
- Öffne nun den Ziel-Workflow, für den du diesen Error-Workflow verwenden möchtest:
- Klicke auf Optionen
> Einstellungen. - Wähle unter Error-Workflow den gerade erstellten Workflow aus (z. B. Error handler).
- Klicke auf Speichern. Danach wird der zugeordnete Error-Workflow automatisch ausgeführt, sobald dieser Workflow fehlschlägt.
- Klicke auf Optionen
Fehlerdaten
Die vom Error Trigger empfangenen Standard-Fehlerdaten sehen wie folgt aus:
[
{
"execution": {
"id": "...",
"url": "...",
"retryOf": null,
"error": {
"name": "NodeOperationError",
"message": "",
"cause": {},
"node": {}
},
"lastNodeExecuted": "Node With Error",
"mode": "manual"
},
"workflow": {}
}
]
Folgende Felder sind nicht immer vorhanden:
execution.id: Erfordert, dass die Ausführung in der Datenbank gespeichert wurde. Falls der Fehler im Trigger des Haupt-Workflows auftritt (d. h., bevor die Ausführung überhaupt gestartet wurde), existiert dieses Feld nicht.execution.url: Erfordert ebenfalls eine gespeicherte Ausführung. Ist beim Fehler im Trigger nicht vorhanden.execution.retryOf: Nur vorhanden, wenn die aktuelle Ausführung ein erneuter Versuch einer zuvor fehlgeschlagenen Ausführung ist.
Wenn der Fehler im Trigger des Haupt-Workflows auftritt (und nicht in einer späteren Phase), unterscheidet sich die an den Error-Workflow übermittelte Datenstruktur: Das Feld execution enthält weniger Informationen, während das Feld trigger detailliertere Fehlerdaten liefert:
{
"trigger": {
"error": {
"name": "WorkflowActivationError",
"cause": {},
"timestamp": 1654609328787,
"message": "",
"node": {}
},
"mode": "trigger"
},
"workflow": {}
}
Erzwingen eines Fehlers mit dem „Stop And Error“-Knoten
Nachdem du einen Error-Workflow erstellt und eingerichtet hast, führt n8n ihn automatisch aus, sobald eine Ausführung aufgrund von Fehlern (z. B. fehlerhafte Knotenkonfiguration oder ein „Out of Memory“-Fehler) scheitert.
Du kannst aber auch gezielt einen Fehler auslösen, indem du einen Stop And Error-Knoten in deinen Workflow einfügst. Dieser lässt die Ausführung unter von dir definierten Bedingungen absichtlich fehlschlagen und aktiviert so den zugehörigen Error-Workflow.