n8n-io/n8n · error

FILTER_MISSING_CONDITIONS

FILTER_MISSING_CONDITIONS

Error message

${nodeRef} is missing or has empty 'conditions' array in ${paramPath}. Add at least one condition with leftValue, operator, and rightValue.

What it means

Error-level validator issue (code FILTER_MISSING_CONDITIONS) emitted when a Filter node's filter value has no 'conditions' array, or the array is empty. Without at least one condition (leftValue, operator, rightValue) the filter has nothing to evaluate, so the validator rejects it.

Source

Thrown at packages/@n8n/workflow-sdk/src/workflow-builder/plugins/validators/filter-node-validator.ts:50

	nodeName: string,
	originalName: string | undefined,
): ValidationIssue[] {
	const issues: ValidationIssue[] = [];

	if (!filterValue.options || typeof filterValue.options !== 'object') {
		issues.push({
			code: 'FILTER_MISSING_OPTIONS',
			message: `${nodeRef} is missing 'options' in ${paramPath}. Add: options: { caseSensitive: false, leftValue: '', typeValidation: 'strict' }`,
			severity: 'error',
			nodeName,
			originalName,
			parameterPath: `${paramPath}.options`,
		});
	}

	if (!Array.isArray(filterValue.conditions) || filterValue.conditions.length === 0) {
		issues.push({
			code: 'FILTER_MISSING_CONDITIONS',
			message: `${nodeRef} is missing or has empty 'conditions' array in ${paramPath}. Add at least one condition with leftValue, operator, and rightValue.`,
			severity: 'error',
			nodeName,
			originalName,
			parameterPath: `${paramPath}.conditions`,
		});
	}

	if (filterValue.combinator === undefined) {
		issues.push({
			code: 'FILTER_MISSING_COMBINATOR',
			message: `${nodeRef} is missing 'combinator' in ${paramPath}. Add: combinator: 'and'`,
			severity: 'error',
			nodeName,
			originalName,
			parameterPath: `${paramPath}.combinator`,
		});
	}

View on GitHub (pinned to 5ac6606e81)

Solutions

  1. Add at least one condition object with leftValue, operator, and rightValue to conditions.
  2. Ensure conditions is an array (not a single object).
  3. Remove the filter node entirely if no filtering is needed.

Example fix

// before
filter({ options: {...} })
// after
filter({
  options: {...},
  conditions: [{ leftValue: '={{ $json.status }}', operator: 'equal', rightValue: 'active' }]
})
Defensive patterns

Strategy: validation

Validate before calling

function hasFilterConditions(fv: Record<string, unknown>): boolean {
  return Array.isArray(fv.conditions) && fv.conditions.length > 0;
}
if (!hasFilterConditions(filterValue)) {
  // error: add at least one condition
}

Type guard

function isCondition(v: unknown): v is { leftValue: unknown; operator: string; rightValue: unknown } {
  return typeof v === 'object' && v !== null && 'operator' in v;
}

Prevention

When it happens

Trigger: Defining a filter with only options but no conditions; passing conditions as a non-array; an empty conditions: [].

Common situations: Incremental config where conditions were not yet filled in; LLM-generated filter that forgot the array; refactors that removed all conditions.

Related errors


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