{"record":{"id":"8b6afc04a57e3deb","repo":"n8n-io/n8n","slug":"filter-missing-conditions","errorCode":"FILTER_MISSING_CONDITIONS","errorMessage":"${nodeRef} is missing or has empty 'conditions' array in ${paramPath}. Add at least one condition with leftValue, operator, and rightValue.","messagePattern":"(.+?) is missing or has empty 'conditions' array in (.+?)\\. Add at least one condition with leftValue, operator, and rightValue\\.","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/@n8n/workflow-sdk/src/workflow-builder/plugins/validators/filter-node-validator.ts","lineNumber":50,"sourceCode":"\tnodeName: string,\n\toriginalName: string | undefined,\n): ValidationIssue[] {\n\tconst issues: ValidationIssue[] = [];\n\n\tif (!filterValue.options || typeof filterValue.options !== 'object') {\n\t\tissues.push({\n\t\t\tcode: 'FILTER_MISSING_OPTIONS',\n\t\t\tmessage: `${nodeRef} is missing 'options' in ${paramPath}. Add: options: { caseSensitive: false, leftValue: '', typeValidation: 'strict' }`,\n\t\t\tseverity: 'error',\n\t\t\tnodeName,\n\t\t\toriginalName,\n\t\t\tparameterPath: `${paramPath}.options`,\n\t\t});\n\t}\n\n\tif (!Array.isArray(filterValue.conditions) || filterValue.conditions.length === 0) {\n\t\tissues.push({\n\t\t\tcode: 'FILTER_MISSING_CONDITIONS',\n\t\t\tmessage: `${nodeRef} is missing or has empty 'conditions' array in ${paramPath}. Add at least one condition with leftValue, operator, and rightValue.`,\n\t\t\tseverity: 'error',\n\t\t\tnodeName,\n\t\t\toriginalName,\n\t\t\tparameterPath: `${paramPath}.conditions`,\n\t\t});\n\t}\n\n\tif (filterValue.combinator === undefined) {\n\t\tissues.push({\n\t\t\tcode: 'FILTER_MISSING_COMBINATOR',\n\t\t\tmessage: `${nodeRef} is missing 'combinator' in ${paramPath}. Add: combinator: 'and'`,\n\t\t\tseverity: 'error',\n\t\t\tnodeName,\n\t\t\toriginalName,\n\t\t\tparameterPath: `${paramPath}.combinator`,\n\t\t});\n\t}","sourceCodeStart":32,"sourceCodeEnd":68,"githubUrl":"https://github.com/n8n-io/n8n/blob/5ac6606e81f67bb9534255570cd4e86fd8101eee/packages/@n8n/workflow-sdk/src/workflow-builder/plugins/validators/filter-node-validator.ts#L32-L68","documentation":"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.","triggerScenarios":"Defining a filter with only options but no conditions; passing conditions as a non-array; an empty conditions: [].","commonSituations":"Incremental config where conditions were not yet filled in; LLM-generated filter that forgot the array; refactors that removed all conditions.","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."],"exampleFix":"// before\nfilter({ options: {...} })\n// after\nfilter({\n  options: {...},\n  conditions: [{ leftValue: '={{ $json.status }}', operator: 'equal', rightValue: 'active' }]\n})","handlingStrategy":"validation","validationCode":"function hasFilterConditions(fv: Record<string, unknown>): boolean {\n  return Array.isArray(fv.conditions) && fv.conditions.length > 0;\n}\nif (!hasFilterConditions(filterValue)) {\n  // error: add at least one condition\n}","typeGuard":"function isCondition(v: unknown): v is { leftValue: unknown; operator: string; rightValue: unknown } {\n  return typeof v === 'object' && v !== null && 'operator' in v;\n}","tryCatchPattern":null,"preventionTips":["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."],"tags":["filter","validator","conditions","node-config"],"backgroundTag":null,"analyzedSha":"5ac6606e81f67bb9534255570cd4e86fd8101eee","analyzedAt":"2026-08-12T05:26:35.080Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}