{"record":{"id":"1c938e578e5fc01a","repo":"opendatalab/MinerU","slug":"invalid-effort-allowed-values-allowed-values-1c938e","errorCode":null,"errorMessage":"Invalid effort. Allowed values: {allowed_values}","messagePattern":"Invalid effort\\. Allowed values: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"mineru/cli/backend_options.py","lineNumber":57,"sourceCode":"def normalize_backend(backend: str) -> str:\n    \"\"\"将旧 backend 别名规范为当前公开名称，并校验最终名称是否合法。\"\"\"\n    normalized_backend = LEGACY_BACKEND_ALIASES.get(backend, backend)\n    if normalized_backend not in PUBLIC_BACKEND_CHOICES:\n        allowed_values = \", \".join(PUBLIC_BACKEND_CHOICES)\n        raise ValueError(f\"Invalid backend. Allowed values: {allowed_values}\")\n    return normalized_backend\n\n\ndef validate_backend(backend: str) -> str:\n    \"\"\"校验公开入口允许的 backend 名称，并返回规范后的后端名称。\"\"\"\n    return normalize_backend(backend)\n\n\ndef validate_effort(effort: str) -> str:\n    \"\"\"校验公开 hybrid effort 参数，并返回规范后的 effort 名称。\"\"\"\n    if effort not in HYBRID_EFFORT_CHOICES:\n        allowed_values = \", \".join(HYBRID_EFFORT_CHOICES)\n        raise ValueError(f\"Invalid effort. Allowed values: {allowed_values}\")\n    return effort\n","sourceCodeStart":39,"sourceCodeEnd":59,"githubUrl":"https://github.com/opendatalab/MinerU/blob/4fe4bde114a23ee5dd637eae99b767f4669bf58c/mineru/cli/backend_options.py#L39-L59","documentation":"ValueError from validate_effort(): the hybrid effort parameter must be exactly 'medium' or 'high' (HYBRID_EFFORT_CHOICES). This is the CLI-side twin of the API check, raised before any parsing work starts.","triggerScenarios":"Running a hybrid backend with an effort flag like 'low', 'ultra', 'auto', or 'MEDIUM'; passing effort to a non-hybrid backend where it is later validated anyway.","commonSituations":"Users porting settings from other LLM tools that have low/medium/high tiers; typos; environment-specific configs written against a fork with more tiers.","solutions":["Use 'medium' or 'high' (lowercase, exact)","Omit the flag to fall back to DEFAULT_HYBRID_EFFORT='medium'","Confirm choices via HYBRID_EFFORT_CHOICES in mineru/cli/backend_options.py for your version"],"exampleFix":"# before\nmineru -p doc.pdf -b hybrid-engine --effort low\n\n# after\nmineru -p doc.pdf -b hybrid-engine --effort medium","handlingStrategy":"validation","validationCode":"from mineru.cli.backend_options import HYBRID_EFFORT_CHOICES, validate_effort\n\neffort = validate_effort((effort or \"medium\").strip().lower())","typeGuard":"def is_valid_effort(v: str | None) -> bool:\n    return v is None or v in {\"medium\", \"high\"}","tryCatchPattern":null,"preventionTips":["Default effort to 'medium' in wrappers instead of propagating user input blindly","Lowercase and strip user input before validation","Expose only medium/high in your own UI dropdowns"],"tags":["cli","validation","hybrid","effort"],"backgroundTag":null,"analyzedSha":"4fe4bde114a23ee5dd637eae99b767f4669bf58c","analyzedAt":"2026-08-14T21:29:18.456Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}