ruvnet/ruflo · error

Unknown filter operator: ${op}

Error message

Unknown filter operator: ${op}

What it means

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.

Source

Thrown at ruflo/src/ruvocal/src/lib/server/database/postgres.ts:164

						values.push(opVal);
						break;
					case "$in":
						clauses.push(`${col} = ANY($${idx++})`);
						values.push(opVal);
						break;
					case "$nin":
						clauses.push(`${col} != ALL($${idx++})`);
						values.push(opVal);
						break;
					case "$regex": {
						const flags =
							ops.$options === "i" ? "~*" : "~";
						clauses.push(`${col}::text ${flags} $${idx++}`);
						values.push(opVal);
						break;
					}
					default:
						logger.warn(`Unknown filter operator: ${op}`);
				}
			}
		} else {
			const v = val instanceof ObjectId ? val.toString() : val;
			clauses.push(`${col} = $${idx++}`);
			values.push(v);
		}
	}

	return {
		text: clauses.length > 0 ? clauses.join(" AND ") : "TRUE",
		values,
	};
}

function snakeCase(s: string): string {
	// Common MongoDB field → Postgres column mappings
	const map: Record<string, string> = {

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Use one of the supported filter operators; add a translation case in postgres.ts if the operator is legitimately needed.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at ruflo/src/ruvocal/src/lib/server/database/postgres.ts:164 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18). Data as JSON: /api/errors/33217195528d4893. Report an issue: GitHub.