chroma-core/chroma · error · TypeError

$contains on #document requires a string pattern

Error message

$contains on #document requires a string pattern

What it means

Error "$contains on #document requires a string pattern" thrown in chroma-core/chroma.

Source

Thrown at chromadb/execution/expression/operator.py:503

        return Regex(self.name, pattern)

    def not_regex(self, pattern: str) -> NotRegex:
        """Field should not match regex: Key('field').not_regex('^pattern')"""
        return NotRegex(self.name, pattern)

    def contains(self, value: LiteralValue) -> Contains:
        """Check if field contains a value.

        On Key.DOCUMENT: substring search (value must be a string).
        On metadata fields: checks if the array field contains the scalar value.

        Examples:
            Key.DOCUMENT.contains("machine learning")  # document substring
            Key("tags").contains("action")              # metadata array contains
            Key("scores").contains(42)                  # metadata array contains
        """
        if self.name == "#document" and not isinstance(value, str):
            raise TypeError("$contains on #document requires a string pattern")
        return Contains(self.name, value)

    def not_contains(self, value: LiteralValue) -> NotContains:
        """Check if field does not contain a value.

        On Key.DOCUMENT: excludes documents containing the substring.
        On metadata fields: checks that the array field does not contain the scalar value.

        Examples:
            Key.DOCUMENT.not_contains("deprecated")  # document substring exclusion
            Key("tags").not_contains("draft")         # metadata array not-contains
        """
        if self.name == "#document" and not isinstance(value, str):
            raise TypeError("$not_contains on #document requires a string pattern")
        return NotContains(self.name, value)


# Initialize predefined key constants

View on GitHub (pinned to aecdd12c8a)

When it happens

Trigger: Thrown at chromadb/execution/expression/operator.py:503 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of chroma-core/chroma@aecdd12c8a (2026-08-16). Data as JSON: /api/errors/3bc25e261b4df2df. Report an issue: GitHub.