Hello everyone,
I’m facing this issue in my workflow since a couple of days when I use a Function node:
Error Details:
Cannot read properties of undefined (reading 'json') [line 5] TypeError
Additional Information:
- Node type:
n8n-nodes-base.code - Node version:
2 (Latest) - n8n version:
1.95.3 (Self Hosted)
Stack Trace:
TypeError: Cannot read properties of undefined (reading 'json') at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-nodes-base@file+packages+nodes-base_@[email protected]_asn1.js@5_12b981d6b49d407a163f4d5244314033/node_modules/n8n-nodes-base/dist/nodes/Code:5:30 at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-nodes-base@file+packages+nodes-base_@[email protected]_asn1.js@5_12b981d6b49d407a163f4d5244314033/node_modules/n8n-nodes-base/dist/nodes/Code:50:2 at VM2 Wrapper.apply (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/@[email protected]/node_modules/@n8n/vm2/lib/bridge.js:490:11) at NodeVM.run (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/@[email protected]/node_modules/@n8n/vm2/lib/nodevm.js:497:23) at JavaScriptSandbox.runCodeAllItems (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-nodes-base@file+packages+nodes-base_@[email protected]_asn1.js@5_12b981d6b49d407a163f4d5244314033/node_modules/n8n-nodes-base/nodes/Code/JavaScriptSandbox.ts:73:36) at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-nodes-base@file+packages+nodes-base_@[email protected]_asn1.js@5_12b981d6b49d407a163f4d5244314033/node_modules/n8n-nodes-base/nodes/Code/Code.node.ts:155:28) at WorkflowExecute.runNode (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@[email protected][email protected][email protected]_/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1185:32) at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@[email protected][email protected][email protected]_/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1534:38 at processTicksAndRejections (node:internal/process/task_queues:95:5) at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@[email protected][email protected][email protected]_/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:2098:11
Node Code (Préparer Données pour Boucle):
`JavaScriptconsole.log(‘— DÉBUT : Nœud Préparer Données pour Boucle —’);
// Retrieves the complete file record (with Attachments and userEmailField)
// Ensure that the previous node (Airtable - Nouveau Fichier) produces a single item with this object.
const fileRecord = $input[0].json;
// — HERE: YOU MUST RETRIEVE THE VARIABLES RECORD —
// Since your current workflow is triggered by a file, you don’t have the variablesRecord directly.
// You will either need to:
// a) Add an Airtable Get All node (like Airtable - Récupérer Variables) BEFORE THIS Function node,
// to retrieve the variablesRecord for this userEmail. (This requires a Merge afterwards to combine)
// b) If you already have a part of the workflow that does this, you need to connect it.
// For now, I will ASSUME that userEmail and variablesRecord have been obtained and are available
// either as global variables (temporarily for debugging), or that you will manually attach them for testing.
// Ideally, they should be passed as INPUT to this node (which would require a Merge before, leading back to the problem).
// — THE SIMPLEST FOR NOW (without modifying too much upstream) —
// We will just extract userEmail and attach it to the attachments.
// The variablesRecord will need to be handled later or passed with userEmail.
const userEmail = fileRecord.userEmailField; // Extracts the email from the file record.
if (!userEmail) {
throw new Error(“User’s email address not found in file record. Cannot loop.”);
}
if (!fileRecord.attachments || fileRecord.attachments.length === 0) {
console.warn(“No attachments found in file record.”);
return ;
}
const outputItems = ;`
You then quoted my previous diagnostic conclusion regarding this issue:
"Asking Gemini why this issue is telling that: 'The problem is NOT in your workflow logic. The problem is NOT in the JavaScript code I provided. The problem lies in an internal and fundamental bug within the execution environment of the Code nodes (JavaScript Sandbox) in your n8n version (1.95.3). This bug prevents data from being correctly “seen” and accessed by JavaScript at runtime, even if it is correctly passed upstream.
The only reliable and lasting solution to resolve this fundamental bug is to update your n8n instance to the latest stable version available. Subsequent n8n versions have brought numerous improvements and bug fixes regarding the stability of Code nodes and input handling.
Given this confirmed diagnosis, the only reliable and lasting solution is to update your n8n instance to the latest stable version available.
This bug is a core component issue, not a problem with your workflow logic or the custom JavaScript code you’ve been putting in the nodes. Updating n8n will provide you with a version where these underlying platform bugs have been addressed, allowing the Code nodes to receive and process inputs correctly as designed.'"
What do I think about it and how to solve the issue?**