Bonjour à tous,
J’ai récemment rencontré ce problème et l’ai corrigé manuellement. Je publie mes conclusions ici au cas où ce ne serait pas un comportement prévu — ou au cas où l’assistant IA aurait besoin d’améliorations.
Le problème
J’ai demandé à l’assistant IA n8n de renommer quelques nœuds dans l’un de mes workflows. Il a effectué la modification et tout semblait correct sur le canevas. Mais juste après, le workflow est devenu complètement impossible à enregistrer — chaque modification que j’ai apportée ensuite a échoué avec :
Problem saving workflow
Autosave failed: Cannot convert undefined or null to object
La console du navigateur affichait la même erreur se répétant continuellement depuis le rendu du canevas et le gestionnaire d’enregistrement :
Les symptômes (IA)
- Renommer était la seule chose que j’ai demandé à l’assistant IA de faire, mais après sa modification, le JSON du workflow est revenu avec plusieurs champs au niveau du nœud explicitement définis à
null— des choses commecredentials,webhookId,notes,notesInFlow,executeOnce,retryOnFail,alwaysOutputDataetonError. - Tout nœud qui n’avait pas besoin de ces propriétés omet normalement simplement la clé dans une exportation n8n standard. L’aller-retour d’édition de l’assistant IA les a plutôt écrites comme
null. - Une fois que cette structure a atteint le canevas, chaque action suivante (déplacement d’un nœud, enregistrement, enregistrement automatique) s’est échouée avec la même erreur
Object.keysTypeError, carnodeTransforms.tsessaie de normaliser ces champs et ne s’attend pas à unnulllittéral.
La cause profonde (IA)
nodeTransforms.ts (utilisé à la fois par la logique de diff du canevas et par useWorkflowSaving.ts) appelle Object.keys(...) sur certaines propriétés de nœud (comme credentials) lors du calcul de la diff à enregistrer. Object.keys(null) lève une exception, donc dès qu’un nœud du workflow a null au lieu d’une clé omise, l’enregistrement/l’enregistrement automatique de tout le workflow casse — pas seulement ce nœud.
Il semble que le chemin d’édition de nœud de l’assistant IA sérialise l’objet nœud sans supprimer les clés qui se sont résolues à null, ce qui produit une forme de nœud techniquement valide en JSON mais non sûre pour le frontend.
La solution (manuellement)
Exportez le JSON du workflow, supprimez n’importe quelle clé sur n’importe quel nœud dont la valeur est null (plutôt que de la définir à null), et réimportez. Par exemple, sur les nœuds affectés, supprimez les clés comme :
"credentials": null,
"webhookId": null,
"notes": null,
"notesInFlow": null,
"executeOnce": null,
"retryOnFail": null,
"alwaysOutputData": null,
"onError": null
de sorte que l’objet nœud n’ait simplement pas ces clés du tout s’il ne les utilise pas. Après suppression des champs null et réimportation (Importer depuis un fichier dans un nouveau workflow, pas coller dans le canevas), le workflow s’est enregistré et auto-enregistré normalement.
J’espère que cela vous épargnera quelques heures de débogage !
Cela semble être un bug dans la façon dont l’assistant IA sérialise les éditions de nœuds — j’apprécierais une confirmation de la part de l’équipe n8n, car quiconque effectuerait des éditions en masse de nœuds avec celui-ci pourrait rencontrer le même problème.

