{"record":{"id":"72e493a5dd5f3295","repo":"ATH-MaaS/Pixelle-Video","slug":"unknown-pipeline-pipeline-available-pipeline","errorCode":null,"errorMessage":"Unknown pipeline: '{pipeline}'. Available pipelines: {available}","messagePattern":"Unknown pipeline: '(.+?)'\\. Available pipelines: (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"pixelle_video/service.py","lineNumber":292,"sourceCode":"                VideoGenerationResult\n            \n            Examples:\n                # Use standard pipeline (default)\n                result = await pixelle_video.generate_video(\n                    text=\"如何提高学习效率\",\n                    n_scenes=5\n                )\n                \n                # Use custom pipeline\n                result = await pixelle_video.generate_video(\n                    text=your_content,\n                    pipeline=\"custom\",\n                    custom_param_example=\"custom_value\"\n                )\n            \"\"\"\n            if pipeline not in self.pipelines:\n                available = \", \".join(self.pipelines.keys())\n                raise ValueError(\n                    f\"Unknown pipeline: '{pipeline}'. \"\n                    f\"Available pipelines: {available}\"\n                )\n            \n            pipeline_instance = self.pipelines[pipeline]\n            return await pipeline_instance(text=text, **kwargs)\n        \n        return generate_video_wrapper\n    \n    @property\n    def project_name(self) -> str:\n        \"\"\"Get project name from config\"\"\"\n        return self.config.get(\"project_name\", \"Pixelle-Video\")\n    \n    def __repr__(self) -> str:\n        \"\"\"String representation\"\"\"\n        status = \"initialized\" if self._initialized else \"not initialized\"\n        pipelines = f\"pipelines={list(self.pipelines.keys())}\" if self._initialized else \"\"","sourceCodeStart":274,"sourceCodeEnd":310,"githubUrl":"https://github.com/ATH-MaaS/Pixelle-Video/blob/848b054e4fae40dabc62ec58e960b573e83793ac/pixelle_video/service.py#L274-L310","documentation":"generate_video_wrapper looks up the requested pipeline name in self.pipelines and raises ValueError for names not registered. The message lists all registered pipelines so the caller can pick a valid one.","triggerScenarios":"service.generate_video(pipeline='<typo>', ...) where pipeline is not a key in self.pipelines (e.g. 'image2video' vs 'image_to_video').","commonSituations":"Typos in pipeline names; calling a custom pipeline before it was registered; version change removed/renamed a pipeline; case mismatch ('Text2Video' vs 'text2video').","solutions":["Use one of the names listed in the error's 'Available pipelines' message","Check service.pipelines.keys() before calling to confirm the exact name","Register a custom pipeline first if you intend to use one: service.pipelines['custom'] = my_pipeline","Fix casing/underscores to match the exact registered key"],"exampleFix":"# before\nawait service.generate_video(pipeline=\"text_to_vid\")\n# after\nawait service.generate_video(pipeline=\"text2video\")","handlingStrategy":"validation","validationCode":"if pipeline_name not in service.pipelines:\n    raise ValueError(f\"{pipeline_name!r} not in {list(service.pipelines)}\")","typeGuard":"def is_valid_pipeline(service, name: str) -> bool:\n    return isinstance(name, str) and name in service.pipelines","tryCatchPattern":"try:\n    video = await service.generate_video(pipeline=name)\nexcept ValueError as e:\n    logger.error(\"pipeline lookup failed: %s\", e)\n    raise","preventionTips":["Discover pipeline names dynamically from service.pipelines.keys() instead of hardcoding","Define pipeline name constants shared between caller and registration code","Add a startup check that all pipeline names your app uses are registered"],"tags":["validation","invalid-value","pipeline"],"backgroundTag":"invalid-enum-value","analyzedSha":"848b054e4fae40dabc62ec58e960b573e83793ac","analyzedAt":"2026-08-30T03:24:41.468Z","schemaVersion":2},"datasetVersion":"2026-08-30T08:17:16.595Z"}