Zum Hauptinhalt springen

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.

  1. Erstelle einen neuen Workflow und füge als ersten Knoten einen Error Trigger hinzu.
  2. Benenne den Workflow, z. B. Error Handler (Fehlerbehandler).
  3. Klicke auf Speichern.
  4. Öffne nun den Ziel-Workflow, für den du diesen Error-Workflow verwenden möchtest:
    1. Klicke auf Optionen Optionsmenü-Symbol > Einstellungen.
    2. Wähle unter Error-Workflow den gerade erstellten Workflow aus (z. B. Error handler).
    3. Klicke auf Speichern. Danach wird der zugeordnete Error-Workflow automatisch ausgeführt, sobald dieser Workflow fehlschlägt.

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.