{"record":{"id":"3e2844988eb009d2","repo":"deepset-ai/haystack","slug":"component-comp-name-not-found-in-pipeline-inpu","errorCode":null,"errorMessage":"Component '{comp_name}' not found in pipeline inputs.\nAvailable components: {list(pipeline_inputs.keys())}","messagePattern":"Component '(.+?)' not found in pipeline inputs\\.\nAvailable components: (.+?)","errorType":"exception","errorClass":"InvalidMappingValueError","httpStatus":null,"severity":"error","filePath":"haystack/core/super_component/super_component.py","lineNumber":204,"sourceCode":"        Validates the input mapping to ensure that specified components and sockets exist in the pipeline.\n\n        :param pipeline_inputs: A dictionary containing pipeline input specifications.\n        :param input_mapping: A dictionary mapping wrapper input names to pipeline socket paths.\n        :raises InvalidMappingTypeError:\n            If the input mapping is of invalid type or contains invalid types.\n        :raises InvalidMappingValueError:\n            If the input mapping contains nonexistent components or sockets.\n        \"\"\"\n        if not isinstance(input_mapping, dict):\n            raise InvalidMappingTypeError(\"input_mapping must be a dictionary\")\n\n        for wrapper_input_name, pipeline_input_paths in input_mapping.items():\n            if not isinstance(pipeline_input_paths, list):\n                raise InvalidMappingTypeError(f\"Input paths for '{wrapper_input_name}' must be a list of strings.\")\n            for path in pipeline_input_paths:\n                comp_name, socket_name = self._split_component_path(path)\n                if comp_name not in pipeline_inputs:\n                    raise InvalidMappingValueError(\n                        f\"Component '{comp_name}' not found in pipeline inputs.\\n\"\n                        f\"Available components: {list(pipeline_inputs.keys())}\"\n                    )\n                if socket_name not in pipeline_inputs[comp_name]:\n                    raise InvalidMappingValueError(\n                        f\"Input socket '{socket_name}' not found in component '{comp_name}'.\\n\"\n                        f\"Available inputs for '{comp_name}': {list(pipeline_inputs[comp_name].keys())}\"\n                    )\n\n    def _resolve_input_types_from_mapping(\n        self, pipeline_inputs: dict[str, dict[str, Any]], input_mapping: dict[str, list[str]]\n    ) -> dict[str, dict[str, Any]]:\n        \"\"\"\n        Resolves and validates input types based on the provided input mapping.\n\n        This function ensures that all mapped pipeline inputs are compatible, consolidating types\n        when multiple mappings exist. It also determines whether an input is mandatory or has a default value.\n","sourceCodeStart":186,"sourceCodeEnd":222,"githubUrl":"https://github.com/deepset-ai/haystack/blob/e318778c9bf60a1963e3b5f451359655dd696c30/haystack/core/super_component/super_component.py#L186-L222","documentation":"The component part of an input_mapping path must exist in the wrapped pipeline's inputs(). If the component name is unknown, InvalidMappingValueError is raised listing available components.","triggerScenarios":"input_mapping path references a component name not added to the pipeline, or misspelled, e.g. [\"embedder.text\"] when the component is named 'text_embedder'.","commonSituations":"Renaming a component via add_component(name=...) without updating the mapping; typos; copying mappings between pipelines with different component names.","solutions":["Use the exact component name from pipeline.inputs() in the path","List available names by printing pipe.inputs().keys() and fix the mapping"],"exampleFix":"// before\ninput_mapping = {\"text\": [\"embedder.text\"]}  # component is named 'text_embedder'\n// after\ninput_mapping = {\"text\": [\"text_embedder.text\"]}","handlingStrategy":"validation","validationCode":"def check_components(pipe, input_mapping):\n    available = set(pipe.inputs().keys())\n    for paths in input_mapping.values():\n        for p in paths:\n            comp = p.split(\".\")[0]\n            if comp not in available:\n                raise ValueError(f\"'{comp}' not in pipeline components: {sorted(available)}\")","typeGuard":"def component_exists(pipe, path: str) -> bool:\n    return path.split(\".\")[0] in pipe.inputs()","tryCatchPattern":"from haystack.core.errors import InvalidMappingValueError\ntry:\n    super_comp = SuperComponent(pipeline=pipe, input_mapping=input_mapping)\nexcept InvalidMappingValueError as e:\n    if \"not found in pipeline inputs\" in str(e):\n        print(\"Available components:\", list(pipe.inputs().keys()))\n    else:\n        raise","preventionTips":["Reference component names exactly as passed to pipe.add_component()","Print pipe.inputs().keys() when authoring mappings","Update mappings whenever component names change"],"tags":["super-component","input-mapping","unknown-component"],"backgroundTag":"unknown-component-reference","analyzedSha":"e318778c9bf60a1963e3b5f451359655dd696c30","analyzedAt":"2026-08-30T11:45:20.711Z","schemaVersion":2},"datasetVersion":"2026-08-30T13:17:10.514Z"}