mem0ai/mem0 · error · ValueError

Oracle filter groups must be non-empty dictionaries

Error message

Oracle filter groups must be non-empty dictionaries

What it means

Error "Oracle filter groups must be non-empty dictionaries" thrown in mem0ai/mem0.

Source

Thrown at mem0/vector_stores/oracledb.py:196

            predicates.append(f"@ has substring {variable}")
            passings.append(passing)
        else:
            variable, passing = _bind_filter_value(operand.lower(), params)
            predicates.append(f"@.lower() has substring {variable}")
            passings.append(passing)

    clauses = list(additional_clauses)
    if predicates:
        clauses.insert(0, _json_exists(json_path, " && ".join(predicates), passings))

    if len(clauses) == 1:
        return clauses[0]
    return "(" + " AND ".join(clauses) + ")"


def _build_filter_group(filters: Dict[str, Any], params: Dict[str, Any]) -> str:
    if not isinstance(filters, dict) or not filters:
        raise ValueError("Oracle filter groups must be non-empty dictionaries")

    clauses: List[str] = []
    for key, value in filters.items():
        if key in _LOGICAL_OPERATORS:
            if not isinstance(value, list) or not value:
                raise ValueError(f"Logical filter operator {key!r} requires a non-empty list")

            nested = [_build_filter_group(condition, params) for condition in value]
            logical_operator = _LOGICAL_OPERATORS[key]
            if logical_operator == "not":
                clauses.append(f"NOT ({' OR '.join(nested)})")
            else:
                joiner = " AND " if logical_operator == "and" else " OR "
                clauses.append("(" + joiner.join(nested) + ")")
            continue

        if key.startswith("$"):
            raise ValueError(f"Unsupported Oracle logical filter operator: {key}")

View on GitHub (pinned to 001c235229)

Solutions

  1. Each Oracle filter group must be a non-empty dictionary of field filters.

When it happens

Trigger: Thrown at mem0/vector_stores/oracledb.py:196 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/d5fc42eb3ba0d59e. Report an issue: GitHub.