n8n-io/n8n · warning
MISSING_EXPRESSION_PREFIX
MISSING_EXPRESSION_PREFIX
Error message
'${node.name}' has parameter "${path}" containing {{ $... }} without '=' prefix. n8n expressions must start with '=' like '={{ $json.field }}'. What it means
Warning-level validator issue (code MISSING_EXPRESSION_PREFIX) emitted when a parameter value contains an n8n expression fragment ('{{ $... }}') but the string does not start with '='. n8n only evaluates a value as an expression when it begins with '='; a bare '{{ }}' fragment is treated as a literal string and will not resolve.
Source
Thrown at packages/@n8n/workflow-sdk/src/workflow-builder/plugins/validators/expression-prefix-validator.ts:50
if (isStickyNoteType(node.type)) {
return issues;
}
// Skip HTML template node - it uses {{ }} natively for template expressions
if (node.type === 'n8n-nodes-base.html') {
return issues;
}
const params = node.config?.parameters;
if (!params) {
return issues;
}
const prefixIssues = findMissingExpressionPrefixes(params);
for (const { path } of prefixIssues) {
issues.push({
code: 'MISSING_EXPRESSION_PREFIX',
message: `'${node.name}' has parameter "${path}" containing {{ $... }} without '=' prefix. n8n expressions must start with '=' like '={{ $json.field }}'.`,
severity: 'warning',
nodeName: node.name,
parameterPath: path,
});
}
return issues;
},
};
View on GitHub (pinned to 5ac6606e81)
Solutions
- Prefix the entire value with '=' so n8n treats it as an expression.
- Use '={{ $json.field }}' form for simple field references.
- Re-run the validator to confirm the warning clears.
Example fix
// before
'{{ $json.field }}'
// after
'={{ $json.field }}' Defensive patterns
Strategy: validation
Validate before calling
function needsExpressionPrefix(value: unknown): boolean {
return typeof value === 'string'
&& /{{\s*\$/.test(value)
&& !value.startsWith('=');
}
if (needsExpressionPrefix(paramValue)) {
// warn: add '=' prefix
} Prevention
- Always prefix n8n expression values with '='.
- Recognize '{{ }}' alone is a literal, not an expression.
- Run the expression-prefix validator on generated configs.
When it happens
Trigger: Writing a value like '{{ $json.field }}' (missing leading '='), or '{{ $json.field }} text' instead of '={{ $json.field }} text'.
Common situations: Copy-paste from a templating system (Handlebars/Mustache) that uses double braces without '='; LLM-generated expressions missing the prefix; partial edits that drop the '='.
Related errors
- Not a expression statement
- AGENT_STATIC_PROMPT
- AGENT_STATIC_PROMPT
- INVALID_DATE_METHOD
- INVALID_EXPRESSION_PATH
AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12).
Data as JSON: /api/errors/b4861043090c31c6.
Report an issue: GitHub.