mem0ai/mem0 · error · ValueError
Oracle filter operator {operator!r} requires a string value
Error message
Oracle filter operator {operator!r} requires a string value What it means
Error "Oracle filter operator {operator!r} requires a string value" thrown in mem0ai/mem0.
Source
Thrown at mem0/vector_stores/oracledb.py:174
list_passings: List[str] = []
for item in operand:
_validate_scalar_operand(operator, item)
if item is None:
variables.append("null")
continue
variable, passing = _bind_filter_value(item, params)
variables.append(variable)
list_passings.append(passing)
membership = _json_exists(json_path, f"@ in ({', '.join(variables)})", list_passings)
if operator == "in":
additional_clauses.append(membership)
else:
additional_clauses.append(f"NOT ({membership})")
continue
if not isinstance(operand, str):
raise ValueError(f"Oracle filter operator {operator!r} requires a string value")
if operator == "contains":
variable, passing = _bind_filter_value(operand, params)
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) + ")"
View on GitHub (pinned to 001c235229)
Solutions
- Pass a string value for this Oracle filter operator.
When it happens
Trigger: Thrown at mem0/vector_stores/oracledb.py:174 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/8b0f9dc851af68f6.
Report an issue: GitHub.