Skip to content

fallback_models never fires on the ElevenLabs connector (it cannot emit MODEL_ERROR) #167

Description

@mark124

fallback_models is only tried on ProviderErrorCode.MODEL_ERROR (in pipeline.py, _try_fallback_models). The ElevenLabs connector's error mapper (genblaze_elevenlabs/_errors.py) has no MODEL_ERROR branch at all: it covers rate limit, auth, invalid input, timeout, and 5xx, then falls through to UNKNOWN. Since generate() raises ProviderError(error_code=map_elevenlabs_error(exc)), an ElevenLabs step can never emit the one code that triggers a fallback, so configuring fallback_models on an ElevenLabs step is silently dead code.

Of the shipped connectors, only nvidia and replicate appear to ever emit MODEL_ERROR, so this likely affects more than one adapter. It overlaps with the error-classifier work proposed in #39.

Repro: give an ElevenLabs step a fallback_models list and a bad primary model id. The primary fails with INVALID_INPUT or UNKNOWN, not MODEL_ERROR, and no fallback is attempted.

Suggested fix: map ElevenLabs unknown-model or not-found responses (for example a 404 on model_id) to MODEL_ERROR. A provider-contract test asserting that every adapter can emit MODEL_ERROR would catch the whole class.

Environment: genblaze-core 0.3.4, genblaze-elevenlabs 0.3.1, Python 3.14.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions