{"record":{"id":"0192a90bb4e3060f","repo":"n8n-io/n8n","slug":"cannot-access-key-due-to-security-concerns","errorCode":null,"errorMessage":"Cannot access \"${key}\" due to security concerns","messagePattern":"Cannot access \"(.+?)\" due to security concerns","errorType":"exception","errorClass":"ExpressionError","httpStatus":null,"severity":"error","filePath":"packages/@n8n/expression-runtime/src/runtime/safe-globals.ts","lineNumber":157,"sourceCode":"\t'__defineGetter__',\n\t'__defineSetter__',\n\t'__lookupGetter__',\n\t'__lookupSetter__',\n\t'toString',\n\t'valueOf',\n\t'toLocaleString',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n]);\n\nexport function __sanitize(value: unknown): unknown {\n\t// Symbols are not string-coercible and fall outside the denylist; pass through.\n\tif (typeof value === 'symbol') return value;\n\t// Coerce once and return the string so the caller uses the already-checked key.\n\tconst key = String(value);\n\tif (unsafeObjectProperties.has(key)) {\n\t\tthrow new ExpressionError(`Cannot access \"${key}\" due to security concerns`);\n\t}\n\treturn key;\n}\n","sourceCodeStart":139,"sourceCodeEnd":161,"githubUrl":"https://github.com/n8n-io/n8n/blob/5ac6606e81f67bb9534255570cd4e86fd8101eee/packages/@n8n/expression-runtime/src/runtime/safe-globals.ts#L139-L161","documentation":"Sentinel error code carried by RuntimeError when expression evaluation inside the V8 isolate exceeded the memory ceiling. The bridge (evaluator.ts) translates this code to MemoryLimitError for the host — the throw site is the runtime's resource monitor, and the fault is an expression allocating too much (huge arrays, deep spreads, unbounded string building).","triggerScenarios":"Thrown at packages/@n8n/expression-runtime/src/runtime/safe-globals.ts:157 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Simplify the expression: avoid spreading large arrays ($json spread, deep Object.assign chains)","Move heavy data shaping into a Code node, which runs outside the isolate limits","Reduce the input data size (filter rows earlier in the workflow, avoid whole-dataset mapping in expressions)","Chunk the work across multiple nodes instead of one monolithic expression"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5ac6606e81f67bb9534255570cd4e86fd8101eee","analyzedAt":"2026-08-12T05:26:35.080Z","contentChangedAt":"2026-08-12T05:26:35.080Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}