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
- Add at least one condition object with leftValue, operator, and rightValue to conditions.
- Ensure conditions is an array (not a single object).
- 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
- Provide at least one condition with leftValue, operator, and rightValue.
- Remove unused Filter nodes instead of leaving them empty.
- Validate conditions array shape before exporting.
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
- FILTER_MISSING_OPTIONS
- FILTER_MISSING_COMBINATOR
- SWITCH_WRONG_RULES_KEY
- Invalid filter operator "${operator}" for key "${key}". Supp
- Filter operator "${operator}" on key "${key}" requires a non
AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12).
Data as JSON: /api/errors/8b6afc04a57e3deb.
Report an issue: GitHub.