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.
fallback_modelsis only tried onProviderErrorCode.MODEL_ERROR(inpipeline.py,_try_fallback_models). The ElevenLabs connector's error mapper (genblaze_elevenlabs/_errors.py) has noMODEL_ERRORbranch at all: it covers rate limit, auth, invalid input, timeout, and 5xx, then falls through toUNKNOWN. Sincegenerate()raisesProviderError(error_code=map_elevenlabs_error(exc)), an ElevenLabs step can never emit the one code that triggers a fallback, so configuringfallback_modelson an ElevenLabs step is silently dead code.Of the shipped connectors, only
nvidiaandreplicateappear to ever emitMODEL_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_modelslist and a bad primarymodelid. The primary fails withINVALID_INPUTorUNKNOWN, notMODEL_ERROR, and no fallback is attempted.Suggested fix: map ElevenLabs unknown-model or not-found responses (for example a 404 on
model_id) toMODEL_ERROR. A provider-contract test asserting that every adapter can emitMODEL_ERRORwould catch the whole class.Environment: genblaze-core 0.3.4, genblaze-elevenlabs 0.3.1, Python 3.14.