docling-project/docling · error · ValueError

No ASR model support for {asr_options}

Error message

No ASR model support for {asr_options}

What it means

The ASR model factory (_get_asr_model / equivalent dispatcher) only maps specific option classes to transcribers: InlineAsrWhisperOptions -> _WhisperModel, InlineAsrMlxWhisperOptions -> _MlxWhisperModel, InlineAsrWhisperS2TOptions -> _WhisperS2TModel. Any other value — including a typo'd class, a custom subclass the factory does not isinstance-match, or None — falls through to ValueError.

Source

Thrown at docling/pipeline/asr_transcriber.py:807

                artifacts_path=artifacts_path,
                accelerator_options=accelerator_options,
                asr_options=asr_options,
            )
        elif isinstance(asr_options, InlineAsrMlxWhisperOptions):
            return _MlxWhisperModel(
                enabled=True,
                artifacts_path=artifacts_path,
                accelerator_options=accelerator_options,
                asr_options=asr_options,
            )
        elif isinstance(asr_options, InlineAsrWhisperS2TOptions):
            return _WhisperS2TModel(
                enabled=True,
                artifacts_path=artifacts_path,
                accelerator_options=accelerator_options,
                asr_options=asr_options,
            )
        raise ValueError(f"No ASR model support for {asr_options}")

View on GitHub (pinned to 61d76f1ff3)

Solutions

  1. Set asr_options to one of the concrete engine option classes: InlineAsrWhisperOptions(), InlineAsrMlxWhisperOptions(), or InlineAsrWhisperS2TOptions()
  2. After upgrading/downgrading docling, re-create options via that version's own get_default_options()/classes so isinstance matches
  3. For custom engines, monkeypatch/extend the factory rather than passing an unknown options class

Example fix

# before
pipeline_options.asr_options = MyCustomAsrOptions()  # unknown to factory

# after
from docling.pipeline.asr_transcriber import InlineAsrWhisperOptions
pipeline_options.asr_options = InlineAsrWhisperOptions()
Defensive patterns

Strategy: type-guard

Validate before calling

from docling.pipeline.asr_transcriber import (
    InlineAsrMlxWhisperOptions, InlineAsrWhisperOptions, InlineAsrWhisperS2TOptions)

SUPPORTED_ASR_OPTIONS = (InlineAsrWhisperOptions, InlineAsrMlxWhisperOptions, InlineAsrWhisperS2TOptions)
assert isinstance(asr_options, SUPPORTED_ASR_OPTIONS), f'unsupported engine options: {type(asr_options).__name__}'

Type guard

def is_supported_asr_options(o) -> bool:
    return isinstance(o, (InlineAsrWhisperOptions, InlineAsrMlxWhisperOptions, InlineAsrWhisperS2TOptions))

Prevention

When it happens

Trigger: Passing an unrecognized object as asr_options to the inline ASR pipeline: e.g. a user-defined AsrOptions subclass, a dict, an options object from an older/newer docling version whose class identity differs, or a plain AsrOptions base instance where a specific engine options class is required.

Common situations: Version mismatches after upgrade/downgrade (options classes live in different modules, isinstance fails across duplicates); plugins trying to add a custom ASR engine by subclassing; forgetting to set a concrete engine in asr_options.

Related errors


AI-assisted analysis of docling-project/docling@61d76f1ff3 (2026-08-14). Data as JSON: /api/errors/471eb81005e84bfa. Report an issue: GitHub.