{"record":{"id":"33217195528d4893","repo":"ruvnet/ruflo","slug":"unknown-filter-operator-op","errorCode":null,"errorMessage":"Unknown filter operator: ${op}","messagePattern":"Unknown filter operator: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"ruflo/src/ruvocal/src/lib/server/database/postgres.ts","lineNumber":164,"sourceCode":"\t\t\t\t\t\tvalues.push(opVal);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"$in\":\n\t\t\t\t\t\tclauses.push(`${col} = ANY($${idx++})`);\n\t\t\t\t\t\tvalues.push(opVal);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"$nin\":\n\t\t\t\t\t\tclauses.push(`${col} != ALL($${idx++})`);\n\t\t\t\t\t\tvalues.push(opVal);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"$regex\": {\n\t\t\t\t\t\tconst flags =\n\t\t\t\t\t\t\tops.$options === \"i\" ? \"~*\" : \"~\";\n\t\t\t\t\t\tclauses.push(`${col}::text ${flags} $${idx++}`);\n\t\t\t\t\t\tvalues.push(opVal);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tlogger.warn(`Unknown filter operator: ${op}`);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconst v = val instanceof ObjectId ? val.toString() : val;\n\t\t\tclauses.push(`${col} = $${idx++}`);\n\t\t\tvalues.push(v);\n\t\t}\n\t}\n\n\treturn {\n\t\ttext: clauses.length > 0 ? clauses.join(\" AND \") : \"TRUE\",\n\t\tvalues,\n\t};\n}\n\nfunction snakeCase(s: string): string {\n\t// Common MongoDB field → Postgres column mappings\n\tconst map: Record<string, string> = {","sourceCodeStart":146,"sourceCodeEnd":182,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/ruflo/src/ruvocal/src/lib/server/database/postgres.ts#L146-L182","documentation":"Log warning in filterToWhere: a Mongo-style filter object used an operator outside the supported set ($eq/$ne/$gt/$lt/$in/$nin/$regex etc.), so that operator's clause is silently skipped in the generated SQL WHERE.","triggerScenarios":"Thrown at ruflo/src/ruvocal/src/lib/server/database/postgres.ts:164 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use one of the supported filter operators; add a translation case in postgres.ts if the operator is legitimately needed."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}