{"record":{"id":"83bd1ac5a5da29b7","repo":"docling-project/docling","slug":"model-self-repo-id-does-not-support-the-trans","errorCode":null,"errorMessage":"Model `{self.repo_id}` does not support the `translate` task. Set task='transcribe' or choose a multilingual model with translation capability (e.g., `large-v3`).","messagePattern":"Model `(.+?)` does not support the `translate` task\\. Set task='transcribe' or choose a multilingual model with translation capability \\(e\\.g\\., `large-v3`\\)\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"docling/datamodel/pipeline_options_asr_model.py","lineNumber":441,"sourceCode":"        Field(description=(\"Hardware accelerators supported by WhisperS2T.\")),\n    ] = [\n        AcceleratorDevice.CPU,\n        AcceleratorDevice.CUDA,\n    ]\n\n    @model_validator(mode=\"after\")\n    def _validate_repo_capabilities(self) -> \"InlineAsrWhisperS2TOptions\":\n        # Reject non-English language for English-only repos\n        if self.repo_id in _ENGLISH_ONLY_S2T_REPOS and self.language != \"en\":\n            raise ValueError(\n                f\"Model `{self.repo_id}` is English-only and does not support \"\n                f\"language `{self.language}`. Set language='en' or choose a \"\n                f\"multilingual model (e.g., `tiny`, `base`, `small`, `medium`, \"\n                f\"`large-v3`).\"\n            )\n        # Reject translate task for repos without translate capability\n        if self.repo_id in _NO_TRANSLATE_S2T_REPOS and self.task == \"translate\":\n            raise ValueError(\n                f\"Model `{self.repo_id}` does not support the `translate` task. \"\n                f\"Set task='transcribe' or choose a multilingual model with \"\n                f\"translation capability (e.g., `large-v3`).\"\n            )\n        return self\n","sourceCodeStart":423,"sourceCodeEnd":447,"githubUrl":"https://github.com/docling-project/docling/blob/61d76f1ff3f8428065465889f7b4577da7df704c/docling/datamodel/pipeline_options_asr_model.py#L423-L447","documentation":"Model validator on InlineAsrWhisperS2TOptions: the repo_id is in _NO_TRANSLATE_S2T_REPOS (English-only repos plus 'large-v3-turbo') but task='translate'. Whisper's translate task (X→English) requires a multilingual model; English-only and turbo checkpoints lack the capability, so the combination is rejected before load.","triggerScenarios":"InlineAsrWhisperS2TOptions(repo_id='large-v3-turbo', task='translate') or any English-only repo with task='translate'. Note the asymmetry: 'large-v3-turbo' transcribes multilingually but still cannot translate.","commonSituations":"Copy-pasting options from a large-v3 config onto a turbo model for speed; default task='translate' in a pipeline template applied to a distilled English model.","solutions":["Use task='transcribe' with the current model.","Or switch to a model with translation capability such as large-v3.","Remember large-v3-turbo is explicitly in the no-translate set even though it is multilingual."],"exampleFix":"# before\nInlineAsrWhisperS2TOptions(repo_id='large-v3-turbo', task='translate')  # ValueError\n\n# after\nInlineAsrWhisperS2TOptions(repo_id='large-v3', task='translate')  # or keep turbo with task='transcribe'","handlingStrategy":"validation","validationCode":"NO_TRANSLATE = _NO_TRANSLATE_S2T_REPOS  # english-only repos + 'large-v3-turbo'\n\ndef task_ok_for_repo(repo_id: str, task: str) -> bool:\n    return repo_id not in NO_TRANSLATE or task != 'translate'","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Remember large-v3-turbo transcribes multilingually but cannot translate.","When switching models for speed, re-check task compatibility.","Default new configs to task='transcribe' unless translation is required."],"tags":["asr","whisper","validation","pydantic","translation"],"backgroundTag":null,"analyzedSha":"61d76f1ff3f8428065465889f7b4577da7df704c","analyzedAt":"2026-08-14T23:53:18.727Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}