Hallo zusammen,
Ich bin vor kurzem auf dieses Problem gestoßen und habe es manuell behoben. Ich poste meine Erkenntnisse hier, falls es nicht beabsichtigtes Verhalten ist — oder falls der KI-Assistent verbessert werden muss.
Das Problem
Ich habe den n8n KI-Assistenten gebeten, ein paar Knoten in einem meiner Workflows umzubenennen. Er hat die Änderung vorgenommen und alles sah auf der Canvas gut aus. Aber direkt danach wurde der Workflow völlig nicht mehr speicherbar — jede Änderung, die ich danach vornahm, schlug mit folgendem Fehler fehl:
Problem beim Speichern des Workflows
Automatisches Speichern fehlgeschlagen: Kann undefined oder null nicht in Objekt konvertieren
In der Browser-Konsole erschien derselbe Fehler wiederholt vom Canvas-Renderer und vom Speicherhandler:
Die Symptome (KI)
- Das Umbenennen war das Einzige, das ich den KI-Assistenten gebeten habe zu tun, aber nach seiner Änderung kam der Workflow-JSON mit mehreren auf Knotenebene definierten Feldern zurück, die explizit auf
nullgesetzt waren — Dinge wiecredentials,webhookId,notes,notesInFlow,executeOnce,retryOnFail,alwaysOutputDataundonError. - Jeder Knoten, der diese Eigenschaften normalerweise nicht brauchte, lässt den Schlüssel einfach weg in einem standardmäßigen n8n-Export. Der Änderungsrundlauf des KI-Assistenten hat sie stattdessen als
nullgeschrieben. - Sobald diese Struktur auf der Canvas ankam, stürzte jede weitere Aktion (einen Knoten verschieben, speichern, automatisches Speichern) mit demselben
Object.keys-TypeError ab, weilnodeTransforms.tsversucht, diese Felder zu normalisieren, und nicht mit einem wörtlichennullrechnet.
Die Grundursache (KI)
nodeTransforms.ts (wird sowohl von der Canvas-Diff-Logik als auch von useWorkflowSaving.ts verwendet) ruft Object.keys(...) auf bestimmten Knoteneigenschaften (wie credentials) auf, wenn der zu speichernde Diff berechnet wird. Object.keys(null) wirft einen Fehler, daher bricht das Speichern/automatische Speichern des gesamten Workflows zusammen, sobald ein Knoten im Workflow null statt eines ausgelassenen Schlüssels hat — nicht nur dieser Knoten.
Es sieht so aus, als würde der Knoteneditierungspfad des KI-Assistenten das Knotenobjekt serialisieren, ohne Schlüssel zu löschen, die zu null aufgelöst wurden, was zu einem technisch gültigem JSON, aber nicht Frontend-sicheren Knotensatz führt.
Die Lösung (manuell)
Exportieren Sie die Workflow-JSON, entfernen Sie jeden Schlüssel auf jedem Knoten, dessen Wert null ist (anstatt ihn auf null zu setzen), und importieren Sie sie erneut. Zum Beispiel, entfernen Sie auf den betroffenen Knoten Schlüssel wie:
"credentials": null,
"webhookId": null,
"notes": null,
"notesInFlow": null,
"executeOnce": null,
"retryOnFail": null,
"alwaysOutputData": null,
"onError": null
sodass das Knotenobjekt einfach diese Schlüssel nicht hat, wenn es sie nicht verwendet. Nach dem Entfernen der null-Felder und dem Neuimportieren (Import aus Datei in einen neuen Workflow, nicht Paste in Canvas), speicherte und speicherte der Workflow automatisch normal.
Hoffentlich spart das jemandem ein paar Stunden Debugging!
Das sieht nach einem Fehler aus, wie der KI-Assistent Knoteneditierungen serialisiert — ich würde eine Bestätigung vom n8n-Team schätzen, da jeder, der Knoten damit massen-editiert, auf dieselbe Wand treffen könnte.

