chroma-core/chroma · error · ValueError
source_key must be str or Key, got {type(v).__name__}
Error message
source_key must be str or Key, got {type(v).__name__} What it means
Error "source_key must be str or Key, got {type(v).__name__}" thrown in chroma-core/chroma.
Source
Thrown at chromadb/api/types.py:1712
] = None # key to source the vector from (accepts str or Key)
hnsw: Optional[HnswIndexConfig] = None
spann: Optional[SpannIndexConfig] = None
@field_validator("source_key", mode="before")
@classmethod
def validate_source_key_field(cls, v: Any) -> Optional[str]:
"""Convert Key objects to strings automatically. Accepts both str and Key types."""
if v is None:
return None
# Import Key at runtime to avoid circular import
from chromadb.execution.expression.operator import Key as KeyType
if isinstance(v, KeyType):
v = v.name # Extract string from Key
elif isinstance(v, str):
pass # Already a string
else:
raise ValueError(f"source_key must be str or Key, got {type(v).__name__}")
# Validate: only #document is allowed if key starts with #
if v.startswith("#") and v != "#document":
raise ValueError(
"source_key cannot begin with '#'. "
"The only valid key starting with '#' is Key.DOCUMENT or '#document'."
)
return v # type: ignore[no-any-return]
@field_validator("embedding_function", mode="before")
@classmethod
def validate_embedding_function_field(cls, v: Any) -> Any:
# Use the existing validate_embedding_function for proper validation
if v is None:
return v
if callable(v):
# Use the existing validation functionView on GitHub (pinned to aecdd12c8a)
When it happens
Trigger: Thrown at chromadb/api/types.py:1712 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/fb049a7595e3b217.
Report an issue: GitHub.