The Fallback That Never Fires
Your agent hits a rate limit. The fallback logic kicks in, picks an alternative model. Everything should be fine. Except the request still goes to the original model. And gets rate-limited again. A...

Source: DEV Community
Your agent hits a rate limit. The fallback logic kicks in, picks an alternative model. Everything should be fine. Except the request still goes to the original model. And gets rate-limited again. And again. Forever. The Setup When your primary model returns 429: Fallback logic detects rate_limit_error Selects next model in the fallback chain Retries with the fallback model User never notices OpenClaw has had model fallback chains for months, and they generally work well. The Override Issue #59213 exposes a subtle timing problem. Between steps 2 and 3, there is another system: session model reconciliation. This reconciliation checks: the agent config says the model should be X. The session current model is Y. That is a mismatch. Let me fix it. And it fixes the fallback selection right back to the rate-limited model. The log tells the whole story: [model-fallback/decision] next=kiro/claude-sonnet-4.6 [agent/embedded] live session model switch detected: kiro/claude-sonnet-4.6 -> anthro