{"record":{"id":"0a8d01083df584a7","repo":"chroma-core/chroma","slug":"select-must-be-a-select-object-dict-list-set-o","errorCode":null,"errorMessage":"select must be a Select object, dict, list, set, or None, got {type(select).__name__}","messagePattern":"select must be a Select object, dict, list, set, or None, got (.+?)","errorType":"validation","errorClass":"TypeError","httpStatus":null,"severity":"error","filePath":"chromadb/execution/expression/plan.py","lineNumber":155,"sourceCode":"        elif isinstance(limit, dict):\n            self._limit = Limit.from_dict(limit)\n        else:\n            raise TypeError(\n                f\"limit must be a Limit object, dict, int, or None, got {type(limit).__name__}\"\n            )\n\n        # Handle select parameter\n        if select is None:\n            self._select = Select()\n        elif isinstance(select, Select):\n            self._select = select\n        elif isinstance(select, dict):\n            self._select = Select.from_dict(select)\n        elif isinstance(select, (list, set)):\n            # Convert list/set of strings to Select object\n            self._select = Select.from_dict({\"keys\": list(select)})\n        else:\n            raise TypeError(\n                f\"select must be a Select object, dict, list, set, or None, got {type(select).__name__}\"\n            )\n\n    def to_dict(self) -> Dict[str, Any]:\n        \"\"\"Return a JSON-serializable dictionary representation.\"\"\"\n        return {\n            \"filter\": self._where.to_dict() if self._where is not None else None,\n            \"rank\": self._rank.to_dict() if self._rank is not None else None,\n            \"group_by\": self._group_by.to_dict(),\n            \"limit\": self._limit.to_dict(),\n            \"select\": self._select.to_dict(),\n        }\n\n    # Builder methods for chaining\n    def select_all(self) -> \"Search\":\n        \"\"\"Select all predefined keys (document, embedding, metadata, score).\"\"\"\n        new_select = Select(keys={Key.DOCUMENT, Key.EMBEDDING, Key.METADATA, Key.SCORE})\n        return Search(","sourceCodeStart":137,"sourceCodeEnd":173,"githubUrl":"https://github.com/chroma-core/chroma/blob/aecdd12c8a891610db8653630b066b32ceb678b5/chromadb/execution/expression/plan.py#L137-L173","documentation":"Error \"select must be a Select object, dict, list, set, or None, got {type(select).__name__}\" thrown in chroma-core/chroma.","triggerScenarios":"Thrown at chromadb/execution/expression/plan.py:155 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"}