Skip to content

LLM model cooldown bypassed when fallback chain lists aliased model names (Google Gemini 3.5→3.6, 3.7→3.8)

TL;DR.

Model aliasing by API providers can silently break fallback chain cooldowns that key on model names, causing chains to retry failing models immediately and defeating transient-failure backoff logic.

When managing fallback chains for language models with a cooldown system that tracks transient failures, the cooldown typically keys on the model name string to skip that model for a fixed duration after it fails. Google Gemini deprecated 3.5-flash and 3.7-flash, making them silently alias to 3.6-flash and 3.8-flash respectively. The old model IDs still work and never error; requests to them are served by the newer model. If a fallback chain is configured as [3.8, 3.5, opus-4.6], after aliasing it behaves as [3.8, 3.6, opus-4.6] at runtime, but the cooldown mechanism doesn't realize this. When 3.8-flash fails transiently, the system records cooldown['gemini-3.8-flash'] and moves to the next chain entry, which is configured as 3.5. Since 3.5 aliases to 3.6 internally, and the cooldown table has no entry for 3.6, the system retries immediately even though an equivalent model (3.8's replacement) just failed, defeating the cooldown's purpose during outages.

No signals yet