run-llama/llama_index · error · ValueError

Component {component} is not a supported transformation comp

Error message

Component {component} is not a supported transformation component.

What it means

Thrown by ConfigurableComponent.from_component() in transformations.py when the transformation component you pass is not registered in the configurable-transformation enum. That enum is built dynamically (build_configurable_transformation_enum()) and only contains transformations whose dependencies import successfully, e.g. NER transformations behind the llama-index-embeddings/llms extras.

Source

Thrown at llama-index-core/llama_index/core/ingestion/transformations.py:100

    name: str = Field(
        description="Unique and human-readable name for the type of transformation"
    )
    transformation_category: TransformationCategories = Field(
        description="Type of transformation"
    )
    component_type: Type[BaseComponent] = Field(
        description="Type of component that implements the transformation"
    )


class ConfigurableComponent(Enum):
    @classmethod
    def from_component(cls, component: BaseComponent) -> "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 transformation component."
        )

    def build_configured_transformation(
        self, component: BaseComponent
    ) -> "ConfiguredTransformation":
        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 ConfiguredTransformation[component_type](  # type: ignore
            component=component, name=self.value.name
        )


def build_configurable_transformation_enum() -> ConfigurableComponent:

View on GitHub (pinned to afd0fef371)

Solutions

  1. Install the optional dependency the transformation needs so it appears in the enum.
  2. Pass the exact registered class; for custom transformations build ConfiguredTransformation directly instead of going through the enum.
  3. Extend the enum builder with a ComponentConfig for your custom transformation.

Example fix

# before
member = ConfigurableComponent.from_component(my_redact_transform)  # raises

# after: construct directly
from llama_index.core.ingestion.transformations import ConfiguredTransformation
cfg = ConfiguredTransformation[MyRedactTransform](
    component=my_redact_transform, name='my_redact'
)
Defensive patterns

Strategy: type-guard

Validate before calling

from llama_index.core.ingestion.transformations import ConfigurableComponent

def is_supported_transformation(component) -> bool:
    return any(m.value.component_type == type(component) for m in ConfigurableComponent)

Type guard

def is_supported_transformation(component: BaseComponent) -> bool:
    return any(m.value.component_type == type(component) for m in ConfigurableComponent)

Try / catch

try:
    member = ConfigurableComponent.from_component(t)
except ValueError:
    from llama_index.core.ingestion.transformations import ConfiguredTransformation
    cfg = ConfiguredTransformation[type(t)](component=t, name=type(t).__name__)

Prevention

When it happens

Trigger: Calling ConfigurableComponent.from_component(component) with a custom transformation, a subclass of a registered transformation (exact type() match fails), or a transformation whose optional dependency is not installed.

Common situations: Adding custom transformations (e.g. a proprietary PII redactor) to a workflow pipeline and trying to register them via the enum; environments where optional NLP dependencies are missing.

Related errors


AI-assisted analysis of run-llama/llama_index@afd0fef371 (2026-08-15). Data as JSON: /api/errors/da4c4b5a23280e82. Report an issue: GitHub.