run-llama/llama_index · error · ValueError
Component {component} is not a supported data sink component
Error message
Component {component} is not a supported data sink component. What it means
Thrown by ConfigurableComponent.from_component() in the ingestion data-sink module when the vector store instance you passed is not one of the enum's registered component types. The enum is built dynamically by build_configurable_data_sink_enum(), which only includes vector stores whose integration packages are importable at runtime. It exists to stop you from configuring a workflow data sink with an unsupported store.
Source
Thrown at llama-index-core/llama_index/core/ingestion/data_sinks.py:34
name: str = Field(
description="Unique and human-readable name for the type of data sink"
)
component_type: Type[BasePydanticVectorStore] = Field(
description="Type of component that implements the data sink"
)
class ConfigurableComponent(Enum):
@classmethod
def from_component(
cls, component: BasePydanticVectorStore
) -> "ConfigurableComponent":
component_class = type(component)
for component_type in cls:
if component_type.value.component_type == component_class:
return component_type
raise ValueError(
f"Component {component} is not a supported data sink component."
)
def build_configured_data_sink(
self, component: BasePydanticVectorStore
) -> "ConfiguredDataSink":
component_type = self.value.component_type
if not isinstance(component, component_type):
raise ValueError(
f"The enum value {self} is not compatible with component of "
f"type {type(component)}"
)
return ConfiguredDataSink[component_type]( # type: ignore
component=component, name=self.value.name
)
def build_configurable_data_sink_enum() -> ConfigurableComponent:View on GitHub (pinned to afd0fef371)
Solutions
- Install the integration package for the vector store you are using, e.g. pip install llama-index-vector-stores-chroma, then rebuild the enum.
- Pass the exact vector store class the enum member was built with (a subclass will not match because from_component compares type(component) with ==).
- If you do not need workflow serialization, use the vector store directly (e.g. VectorStoreIndex with storage_context) instead of wrapping it as a ConfiguredDataSink.
- Register/extend the enum via build_configurable_data_sink_enum() with your custom store's ComponentConfig if you need first-class support.
Example fix
# before: chroma integration not installed -> ValueError from llama_index.core.ingestion.data_sinks import ConfigurableComponent sink = ConfigurableComponent.from_component(my_store) # raises # after: install integration and pass the exact registered class # pip install llama-index-vector-stores-chroma from llama_index.vector_stores.chroma import ChromaVectorStore sink = ConfigurableComponent.from_component(ChromaVectorStore(chroma_collection=col))
Defensive patterns
Strategy: type-guard
Validate before calling
from llama_index.core.ingestion.data_sinks import ConfigurableComponent
def is_supported_data_sink(store) -> bool:
return any(
m.value.component_type == type(store)
for m in ConfigurableComponent
) Type guard
def is_supported_data_sink(store: BasePydanticVectorStore) -> bool:
return any(m.value.component_type == type(store) for m in ConfigurableComponent) Try / catch
try:
member = ConfigurableComponent.from_component(store)
except ValueError as e:
raise ConfigurationError(f'Vector store {type(store).__name__} not available; install its integration') from e Prevention
- Install every vector-store integration your workflows reference before building the enum
- Never pass subclasses where the exact registered class is expected
- Add a startup check that validates all configured stores against the enum
When it happens
Trigger: Calling ConfigurableComponent.from_component(my_vector_store) where type(my_vector_store) is not the exact class referenced by any enum member's .value.component_type. This happens when the store's integration (e.g. llama-index-vector-stores-qdrant) is not installed, when you pass a subclass instead of the exact registered class, or when you pass a custom/homegrown vector store.
Common situations: Building a llama-index workflow data sink in an environment where vector-store integrations were partially installed; upgrading llama-index to the workflow-style configurable components while old custom vector stores are still in use; passing a wrapped or subclassed store (type() comparison is exact, so subclasses do not match).
Related errors
- The enum value {self} is not compatible with component of ty
- Component {component} is not a supported data source compone
- Component {component} is not a supported transformation comp
- Cannot initialize from a vector store that does not store te
- The enum value {self} is not compatible with component of ty
AI-assisted analysis of run-llama/llama_index@afd0fef371 (2026-08-15).
Data as JSON: /api/errors/c7fa99cc8a859358.
Report an issue: GitHub.