{"record":{"id":"d81896b3bd926a28","repo":"deepset-ai/haystack","slug":"no-inputs-provided","errorCode":null,"errorMessage":"No inputs provided.","messagePattern":"No inputs provided\\.","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"haystack/evaluation/eval_run_result.py","lineNumber":45,"sourceCode":"        :param run_name:\n            Name of the evaluation run.\n\n        :param inputs:\n            Dictionary containing the inputs used for the run. Each key is the name of the input and its value is a list\n            of input values. The length of the lists should be the same.\n\n        :param results:\n            Dictionary containing the results of the evaluators used in the evaluation pipeline. Each key is the name\n            of the metric and its value is dictionary with the following keys:\n                - 'score': The aggregated score for the metric.\n                - 'individual_scores': A list of scores for each input sample.\n        \"\"\"\n        self.run_name = run_name\n        self.inputs = deepcopy(inputs)\n        self.results = deepcopy(results)\n\n        if len(inputs) == 0:\n            raise ValueError(\"No inputs provided.\")\n        if len({len(lst) for lst in inputs.values()}) != 1:\n            raise ValueError(\"Lengths of the inputs should be the same.\")\n\n        expected_len = len(next(iter(inputs.values())))\n\n        for metric, outputs in results.items():\n            if \"score\" not in outputs:\n                raise ValueError(f\"Aggregate score missing for {metric}.\")\n            if \"individual_scores\" not in outputs:\n                raise ValueError(f\"Individual scores missing for {metric}.\")\n\n            if len(outputs[\"individual_scores\"]) != expected_len:\n                raise ValueError(\n                    f\"Length of individual scores for '{metric}' should be the same as the inputs. \"\n                    f\"Got {len(outputs['individual_scores'])} but expected {expected_len}.\"\n                )\n\n    @staticmethod","sourceCodeStart":27,"sourceCodeEnd":63,"githubUrl":"https://github.com/deepset-ai/haystack/blob/e318778c9bf60a1963e3b5f451359655dd696c30/haystack/evaluation/eval_run_result.py#L27-L63","documentation":"EvaluationRunResult.__init__ raises ValueError when the inputs dict is empty. An evaluation run needs at least one input column to align inputs with metric outputs; an empty run has nothing to score or report.","triggerScenarios":"Calling EvaluationRunResult(run_name, inputs={}, results={...}) — e.g. an EvaluationResult from a pipeline run where no inputs were recorded, or a filtered-out/empty evaluation dataset.","commonSituations":"Running evaluation over an empty dataset, a pipeline run whose inputs dict came back empty, accidentally passing results as the inputs argument.","solutions":["Ensure the evaluation dataset has at least one row before constructing EvaluationRunResult","Check that the pipeline run's EvaluationResult actually contains recorded inputs","Verify argument order: EvaluationRunResult(run_name, inputs, results) — inputs must be the non-empty dict of input lists"],"exampleFix":"// before\nrun = EvaluationRunResult(\"run1\", inputs={}, results=results)  # ValueError\n// after\nif not inputs:\n    raise RuntimeError(\"Evaluation inputs are empty; nothing to evaluate\")\nrun = EvaluationRunResult(\"run1\", inputs=inputs, results=results)","handlingStrategy":"validation","validationCode":"if not inputs or len(next(iter(inputs.values()), [])) == 0:\n    raise RuntimeError(\"Evaluation aborted: no inputs to evaluate\")\nEvaluationRunResult(run_name, inputs=inputs, results=results)","typeGuard":null,"tryCatchPattern":"try:\n    run = EvaluationRunResult(run_name, inputs=inputs, results=results)\nexcept ValueError as e:\n    if \"No inputs provided\" in str(e):\n        raise RuntimeError(\"Evaluation run had no inputs; check the pipeline run/inputs\") from e\n    raise","preventionTips":["Check the evaluation dataset is non-empty before running evaluation","Confirm the pipeline run returned a populated EvaluationResult with inputs","Double-check argument order: inputs is the second positional argument"],"tags":["evaluation","validation","empty-input"],"backgroundTag":"empty-input-validation","analyzedSha":"e318778c9bf60a1963e3b5f451359655dd696c30","analyzedAt":"2026-08-30T11:45:20.711Z","schemaVersion":2},"datasetVersion":"2026-08-30T13:17:10.514Z"}