{"record":{"id":"494a99fcf91652cf","repo":"mem0ai/mem0","slug":"logical-filter-operator-key-r-requires-a-non-emp","errorCode":null,"errorMessage":"Logical filter operator {key!r} requires a non-empty list","messagePattern":"Logical filter operator (.+?) requires a non-empty list","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"mem0/vector_stores/oracledb.py","lineNumber":202,"sourceCode":"\n    clauses = list(additional_clauses)\n    if predicates:\n        clauses.insert(0, _json_exists(json_path, \" && \".join(predicates), passings))\n\n    if len(clauses) == 1:\n        return clauses[0]\n    return \"(\" + \" AND \".join(clauses) + \")\"\n\n\ndef _build_filter_group(filters: Dict[str, Any], params: Dict[str, Any]) -> str:\n    if not isinstance(filters, dict) or not filters:\n        raise ValueError(\"Oracle filter groups must be non-empty dictionaries\")\n\n    clauses: List[str] = []\n    for key, value in filters.items():\n        if key in _LOGICAL_OPERATORS:\n            if not isinstance(value, list) or not value:\n                raise ValueError(f\"Logical filter operator {key!r} requires a non-empty list\")\n\n            nested = [_build_filter_group(condition, params) for condition in value]\n            logical_operator = _LOGICAL_OPERATORS[key]\n            if logical_operator == \"not\":\n                clauses.append(f\"NOT ({' OR '.join(nested)})\")\n            else:\n                joiner = \" AND \" if logical_operator == \"and\" else \" OR \"\n                clauses.append(\"(\" + joiner.join(nested) + \")\")\n            continue\n\n        if key.startswith(\"$\"):\n            raise ValueError(f\"Unsupported Oracle logical filter operator: {key}\")\n\n        clauses.append(_build_field_condition(key, value, params))\n\n    if len(clauses) == 1:\n        return clauses[0]\n    return \"(\" + \" AND \".join(clauses) + \")\"","sourceCodeStart":184,"sourceCodeEnd":220,"githubUrl":"https://github.com/mem0ai/mem0/blob/001c235229be8795e3834520467bd0d661ed8f34/mem0/vector_stores/oracledb.py#L184-L220","documentation":"Error \"Logical filter operator {key!r} requires a non-empty list\" thrown in mem0ai/mem0.","triggerScenarios":"Thrown at mem0/vector_stores/oracledb.py:202 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass a non-empty list of filter groups to the logical operator (AND/OR)."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"001c235229be8795e3834520467bd0d661ed8f34","analyzedAt":"2026-08-15T01:55:42.685Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}