{"record":{"id":"294b7b3f7707675d","repo":"mem0ai/mem0","slug":"filter-operator-op-r-for-key-key-r-requires-a","errorCode":null,"errorMessage":"Filter operator {op!r} for key {key!r} requires a list value, got {type(op_value).__name__}","messagePattern":"Filter operator (.+?) for key (.+?) requires a list value, got (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"mem0/vector_stores/pgvector.py","lineNumber":93,"sourceCode":"                    not_groups.append(\"(\" + \" AND \".join(sub_conds) + \")\")\n                    params.extend(sub_params)\n            if not_groups:\n                conditions.append(\"NOT (\" + \" OR \".join(not_groups) + \")\")\n            continue\n\n        if value == \"*\":\n            conditions.append(\"payload ? %s\")\n            params.append(key)\n            continue\n\n        if isinstance(value, dict):\n            for op, op_value in value.items():\n                if op not in OPERATOR_SQL_MAP:\n                    raise ValueError(f\"Unsupported filter operator: {op}\")\n                template, is_numeric = OPERATOR_SQL_MAP[op]\n                if op in (\"in\", \"nin\"):\n                    if not isinstance(op_value, list):\n                        raise ValueError(\n                            f\"Filter operator {op!r} for key {key!r} requires a list value, got {type(op_value).__name__}\"\n                        )\n                    str_list = [str(v) for v in op_value]\n                    conditions.append(template)\n                    params.extend([key, str_list])\n                elif op in (\"contains\", \"icontains\"):\n                    escaped = str(op_value).replace(\"\\\\\", \"\\\\\\\\\").replace(\"%\", \"\\\\%\").replace(\"_\", \"\\\\_\")\n                    conditions.append(template + \" ESCAPE '\\\\'\")\n                    params.extend([key, f\"%{escaped}%\"])\n                else:\n                    conditions.append(template)\n                    if is_numeric:\n                        params.extend([key, float(op_value)])\n                    else:\n                        params.extend([key, str(op_value)])\n        elif isinstance(value, list):\n            conditions.append(\"payload->>%s = ANY(%s)\")\n            params.extend([key, [str(v) for v in value]])","sourceCodeStart":75,"sourceCodeEnd":111,"githubUrl":"https://github.com/mem0ai/mem0/blob/001c235229be8795e3834520467bd0d661ed8f34/mem0/vector_stores/pgvector.py#L75-L111","documentation":"Error \"Filter operator {op!r} for key {key!r} requires a list value, got {type(op_value).__name__}\" thrown in mem0ai/mem0.","triggerScenarios":"Thrown at mem0/vector_stores/pgvector.py:93 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass a list value for this filter operator (e.g. {'in': ['a','b']})."],"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"}