{"record":{"id":"9d15a7b475c2c0a4","repo":"chroma-core/chroma","slug":"and-requires-at-least-one-condition","errorCode":null,"errorMessage":"$and requires at least one condition","messagePattern":"\\$and requires at least one condition","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"chromadb/execution/expression/operator.py","lineNumber":104,"sourceCode":"        - {\"field\": {\"$regex\": \"pattern\"}} -> Key(\"field\").regex(\"pattern\")\n        - {\"field\": {\"$not_regex\": \"pattern\"}} -> Key(\"field\").not_regex(\"pattern\")\n        - {\"$and\": [conditions]} -> condition1 & condition2 & ...\n        - {\"$or\": [conditions]} -> condition1 | condition2 | ...\n        \"\"\"\n        if not isinstance(data, dict):\n            raise TypeError(f\"Expected dict for Where, got {type(data).__name__}\")\n\n        if not data:\n            raise ValueError(\"Where dict cannot be empty\")\n\n        # Handle logical operators\n        if \"$and\" in data:\n            if not isinstance(data[\"$and\"], list):\n                raise TypeError(\n                    f\"$and must be a list, got {type(data['$and']).__name__}\"\n                )\n            if len(data[\"$and\"]) == 0:\n                raise ValueError(\"$and requires at least one condition\")\n            if len(data) > 1:\n                raise ValueError(\n                    \"$and cannot be combined with other fields in the same dict\"\n                )\n\n            conditions = [Where.from_dict(c) for c in data[\"$and\"]]\n            if len(conditions) == 1:\n                return conditions[0]\n            result = conditions[0]\n            for c in conditions[1:]:\n                result = result & c\n            return result\n\n        elif \"$or\" in data:\n            if not isinstance(data[\"$or\"], list):\n                raise TypeError(f\"$or must be a list, got {type(data['$or']).__name__}\")\n            if len(data[\"$or\"]) == 0:\n                raise ValueError(\"$or requires at least one condition\")","sourceCodeStart":86,"sourceCodeEnd":122,"githubUrl":"https://github.com/chroma-core/chroma/blob/aecdd12c8a891610db8653630b066b32ceb678b5/chromadb/execution/expression/operator.py#L86-L122","documentation":"Error \"$and requires at least one condition\" thrown in chroma-core/chroma.","triggerScenarios":"Thrown at chromadb/execution/expression/operator.py:104 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"aecdd12c8a891610db8653630b066b32ceb678b5","analyzedAt":"2026-08-16T21:53:27.228Z","schemaVersion":2},"datasetVersion":"2026-08-16T23:17:17.608Z"}