❗ Ein kleiner Fehler mit großer Wirkung
Max ist neu in der Welt der Automatisierung und arbeitet sich gerade durch den Level 2 Kurs von n8n. Doch beim letzten Workflow – dem sogenannten Error Workflow – tritt ein hartnäckiger Fehler auf: „Cannot read properties of undefined (reading 'error')“. Obwohl der Hauptworkflow korrekt fehlschlägt und den Fehler-Workflow triggert, stürzt Letzterer mit dieser kryptischen Fehlermeldung ab.
Was steckt dahinter – und wie lässt sich das Problem lösen? Dieser Artikel beleuchtet die Ursache, zeigt Workarounds und gibt Tipps für stabile Fehler-Workflows in self-hosted n8n-Instanzen.
---
🔍 Zusammenfassung
- • Der Fehler tritt in selbst gehosteten n8n-Instanzen ab Version 1.103.2 auf
- • Er betrifft speziell den Error Workflow und ist auf eine fehlerhafte Datenstruktur zurückzuführen
- • Ursache: Der `error`-Parameter wird nicht korrekt übergeben oder verarbeitet
- • Lösung: Struktur des Inputs im Error Workflow prüfen und anpassen
---
✅ Wichtigste Erkenntnisse
- Der Fehler tritt nicht im Hauptworkflow, sondern im Fehler-Workflow auf
- Die Fehlermeldung deutet darauf hin, dass ein Objektzugriff auf `error.message` erfolgt, obwohl `error` undefined ist
- Oft liegt es an einer falschen Konfiguration der Error-Trigger-Node
- Eine einfache Prüfung im Code-Node kann Abstürze vermeiden
---
🛠️ Praktische Anwendungen: So umgehen Sie den Fehler
Stellen wir uns vor, Sie haben zwei Workflows:
- • Workflow 2: Der Hauptworkflow, der bei einem Fehler den Error Workflow aufruft
- • Workflow 3: Der Error Workflow mit einer Error Trigger Node
Beispiel: Fehlerbehandlung richtig implementieren
In Workflow 3 sollte die erste Node eine Error Trigger Node sein. Diese Node stellt die Fehlerdaten als `parameters.error` zur Verfügung. Ein häufiger Fehler ist jedoch, dass ein nachfolgender Code-Node direkt auf `item.error.message` zugreift – obwohl `item.error` nicht existiert.
#### Falscher Zugriff (führt zum Crash): javascript return [{ json: { message: item.error.message } }];
#### Richtiger Zugriff über `$json`: javascript return [{ json: { message: $json["error"].message } }];
Noch sicherer: javascript return [{ json: { message: $json["error"]?.message || "Keine Fehlermeldung vorhanden" } }];
Zusätzlicher Tipp
Fügen Sie vor dem Zugriff auf `error` eine IF-Node ein, die prüft, ob `error` überhaupt existiert. So vermeiden Sie Laufzeitfehler.
---
⚙️ Technische Details: Was passiert im Hintergrund?
n8n übergibt bei einem Fehler die Fehlermeldung an den Error Workflow als Objekt. Dieses Objekt enthält u.a. die Eigenschaften:
- • `error.message`
- • `error.stack`
- • `workflow.name`
- • `node.name`
Wenn der Error Workflow jedoch eine Node enthält, die nicht auf die strukturierte Fehler-Info zugreift, sondern pauschal mit `item.error` arbeitet, kann dies zu einem undefined-Zugriff führen – genau das, was Max passiert ist.
Warum betrifft es nur Self-Hosted-Versionen?
In der Cloud-Version wird der Fehler-Trigger oft automatisch korrekt konfiguriert. In der Self-Hosted-Version (ab 1.103.2) scheint es jedoch Fälle zu geben, in denen die Übergabe der Fehlerdaten nicht vollständig initialisiert ist.
Möglicher Grund: Inkompatibilität mit älteren Workflows oder manuelle Anpassungen an der Workflow-Struktur.
---
🔮 Ausblick: So wird n8n robuster
Das n8n-Team arbeitet kontinuierlich daran, Fehler-Handling zu verbessern. Geplante Updates:
- • Bessere Validierung der Error-Trigger-Datenstruktur
- • Logging-Verbesserungen bei Fehlern im Error Workflow selbst
- • Vorschläge für Default-Workflows mit eingebauter Validierung
Bis dahin gilt: Sicherheitsabfragen und defensives Programmieren sind der Schlüssel zu stabilen Fehler-Workflows.
---
🚀 Ihre nächsten Schritte
Sofort umsetzen (5 Minuten): Öffnen Sie Ihren Error Workflow in n8n und fügen Sie vor jeder Code- oder Set-Node eine IF-Node ein, die prüft, ob `$json["error"]` existiert.
Tool-Empfehlung: n8n Desktop App – Ideal zum lokalen Debugging und Testen von Workflows ohne Cloud-Abhängigkeit.
Weiterführend: n8n Community Forum – Besonders der Thread zum Thema „Error Workflow fails with ‘Cannot read properties of undefined’“ bietet viele Nutzerlösungen und Erklärungen.