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

  1. Prefix the entire value with '=' so n8n treats it as an expression.
  2. Use '={{ $json.field }}' form for simple field references.
  3. 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

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


AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12). Data as JSON: /api/errors/b4861043090c31c6. Report an issue: GitHub.