mem0ai/mem0 · error · ValueError

Unsupported Oracle filter operator(s) for field {metadata_ke

Error message

Unsupported Oracle filter operator(s) for field {metadata_key!r}: {', '.join(sorted(map(str, unsupported)))}

What it means

Error "Unsupported Oracle filter operator(s) for field {metadata_key!r}: {', '.join(sorted(map(str, unsupported)))}" thrown in mem0ai/mem0.

Source

Thrown at mem0/vector_stores/oracledb.py:129

def _build_field_condition(metadata_key: str, value: Any, params: Dict[str, Any]) -> str:
    json_path = _json_path(metadata_key)

    if value == "*":
        return f"JSON_EXISTS(payload, '${json_path}')"

    if not isinstance(value, dict):
        _validate_scalar_operand("eq", value)
        if value is None:
            return _json_exists(json_path, "@ == null", [])
        variable, passing = _bind_filter_value(value, params)
        return _json_exists(json_path, f"@ == {variable}", [passing])

    if not value:
        raise ValueError(f"Operator filter for field {metadata_key!r} must not be empty")

    unsupported = set(value) - _FIELD_OPERATORS
    if unsupported:
        raise ValueError(
            f"Unsupported Oracle filter operator(s) for field {metadata_key!r}: "
            f"{', '.join(sorted(map(str, unsupported)))}"
        )

    predicates: List[str] = []
    passings: List[str] = []
    additional_clauses: List[str] = []

    for operator, operand in value.items():
        if operator in _COMPARISON_OPERATORS:
            _validate_scalar_operand(operator, operand)
            if operand is None:
                if operator not in {"eq", "ne"}:
                    raise ValueError(f"Oracle filter operator {operator!r} does not support null")
                predicates.append(f"@ {_COMPARISON_OPERATORS[operator]} null")
                continue
            variable, passing = _bind_filter_value(operand, params)
            predicates.append(f"@ {_COMPARISON_OPERATORS[operator]} {variable}")

View on GitHub (pinned to 001c235229)

Solutions

  1. Use only supported Oracle filter operators (eq, ne, gt, gte, lt, lte, in, nin, contains, etc.).

When it happens

Trigger: Thrown at mem0/vector_stores/oracledb.py:129 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of mem0ai/mem0@001c235229 (2026-08-15). Data as JSON: /api/errors/606346b51211a19b. Report an issue: GitHub.