{"record":{"id":"3bc25e261b4df2df","repo":"chroma-core/chroma","slug":"contains-on-document-requires-a-string-pattern","errorCode":null,"errorMessage":"$contains on #document requires a string pattern","messagePattern":"\\$contains on #document requires a string pattern","errorType":"exception","errorClass":"TypeError","httpStatus":null,"severity":"error","filePath":"chromadb/execution/expression/operator.py","lineNumber":503,"sourceCode":"        return Regex(self.name, pattern)\n\n    def not_regex(self, pattern: str) -> NotRegex:\n        \"\"\"Field should not match regex: Key('field').not_regex('^pattern')\"\"\"\n        return NotRegex(self.name, pattern)\n\n    def contains(self, value: LiteralValue) -> Contains:\n        \"\"\"Check if field contains a value.\n\n        On Key.DOCUMENT: substring search (value must be a string).\n        On metadata fields: checks if the array field contains the scalar value.\n\n        Examples:\n            Key.DOCUMENT.contains(\"machine learning\")  # document substring\n            Key(\"tags\").contains(\"action\")              # metadata array contains\n            Key(\"scores\").contains(42)                  # metadata array contains\n        \"\"\"\n        if self.name == \"#document\" and not isinstance(value, str):\n            raise TypeError(\"$contains on #document requires a string pattern\")\n        return Contains(self.name, value)\n\n    def not_contains(self, value: LiteralValue) -> NotContains:\n        \"\"\"Check if field does not contain a value.\n\n        On Key.DOCUMENT: excludes documents containing the substring.\n        On metadata fields: checks that the array field does not contain the scalar value.\n\n        Examples:\n            Key.DOCUMENT.not_contains(\"deprecated\")  # document substring exclusion\n            Key(\"tags\").not_contains(\"draft\")         # metadata array not-contains\n        \"\"\"\n        if self.name == \"#document\" and not isinstance(value, str):\n            raise TypeError(\"$not_contains on #document requires a string pattern\")\n        return NotContains(self.name, value)\n\n\n# Initialize predefined key constants","sourceCodeStart":485,"sourceCodeEnd":521,"githubUrl":"https://github.com/chroma-core/chroma/blob/aecdd12c8a891610db8653630b066b32ceb678b5/chromadb/execution/expression/operator.py#L485-L521","documentation":"Error \"$contains on #document requires a string pattern\" thrown in chroma-core/chroma.","triggerScenarios":"Thrown at chromadb/execution/expression/operator.py:503 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"}