Bug type
Regression (worked before, now fails)
Beta release blocker
No
Summary
Description:
Despite having agents.defaults.model.fallbacks correctly configured in openclaw.json, the system fails to trigger the failover mechanism when the primary model returns a server error (e.g., HTTP 500). Instead of switching to the backup models, the system surfaces the error directly to the user.
Expected Behavior:
When the primary model (google/gemma-4-31b-it) fails with a 500 error, the runner should identify the configured fallbacks and attempt to process the request with the next model in the list.
Actual Behavior:
The runner reports that no fallbacks are configured for the current run, ignoring the global defaults.
Evidence (Logs):
The following log sequence shows the failure. Note the embedded_run_failover_decision event explicitly stating "fallbackConfigured": false despite global configuration being present.
// 1. Primary model fails with 500 Internal Error
{
"event": "embedded_run_agent_end",
"isError": true,
"error": "LLM request timed out.",
"failoverReason": "timeout",
"model": "gemma-4-31b-it",
"provider": "google",
"rawErrorPreview": "Google Generative AI API error (500): {\n "error": {\n "code": 500,\n "message": "Internal error encountered.",\n "status": "INTERNAL"\n }\n}"
}
// 2. Failover decision ignores global configuration
{
"event": "embedded_run_failover_decision",
"decision": "surface_error",
"failoverReason": "timeout",
"model": "gemma-4-31b-it",
"fallbackConfigured": false,
"timedOut": true
}
Configuration used (openclaw.json):
"agents": {
"defaults": {
"model": {
"primary": "google/gemma-4-31b-it",
"fallbacks": [
"meta-llama/llama-3.3-70b-instruct:free",
"nvidia/nemotron-4-340b-instruct:free",
"qwen/qwen3-next-80b-a3b-instruct:free"
]
}
}
}
Analysis:
There seems to be a disconnection between the global configuration layer and the session execution runner. The fallbackConfigured flag is returning false at runtime, indicating that the defaults.model.fallbacks list is not being properly inherited or injected into the session context.
Steps to reproduce
NOT_ENOUGH_INFO
Expected behavior
NOT_ENOUGH_INFO
Actual behavior
NOT_ENOUGH_INFO
OpenClaw version
2026.4.22
Operating system
debian 13
Install method
rpm global
Model
gemma 4
Provider / routing chain
openclaw
Additional provider/model setup details
No response
Logs, screenshots, and evidence
Impact and severity
No response
Additional information
No response
Bug type
Regression (worked before, now fails)
Beta release blocker
No
Summary
Description:
Despite having agents.defaults.model.fallbacks correctly configured in openclaw.json, the system fails to trigger the failover mechanism when the primary model returns a server error (e.g., HTTP 500). Instead of switching to the backup models, the system surfaces the error directly to the user.
Expected Behavior:
When the primary model (google/gemma-4-31b-it) fails with a 500 error, the runner should identify the configured fallbacks and attempt to process the request with the next model in the list.
Actual Behavior:
The runner reports that no fallbacks are configured for the current run, ignoring the global defaults.
Evidence (Logs):
The following log sequence shows the failure. Note the embedded_run_failover_decision event explicitly stating "fallbackConfigured": false despite global configuration being present.
// 1. Primary model fails with 500 Internal Error
{
"event": "embedded_run_agent_end",
"isError": true,
"error": "LLM request timed out.",
"failoverReason": "timeout",
"model": "gemma-4-31b-it",
"provider": "google",
"rawErrorPreview": "Google Generative AI API error (500): {\n "error": {\n "code": 500,\n "message": "Internal error encountered.",\n "status": "INTERNAL"\n }\n}"
}
// 2. Failover decision ignores global configuration
{
"event": "embedded_run_failover_decision",
"decision": "surface_error",
"failoverReason": "timeout",
"model": "gemma-4-31b-it",
"fallbackConfigured": false,
"timedOut": true
}
Configuration used (openclaw.json):
"agents": {
"defaults": {
"model": {
"primary": "google/gemma-4-31b-it",
"fallbacks": [
"meta-llama/llama-3.3-70b-instruct:free",
"nvidia/nemotron-4-340b-instruct:free",
"qwen/qwen3-next-80b-a3b-instruct:free"
]
}
}
}
Analysis:
There seems to be a disconnection between the global configuration layer and the session execution runner. The fallbackConfigured flag is returning false at runtime, indicating that the defaults.model.fallbacks list is not being properly inherited or injected into the session context.
Steps to reproduce
NOT_ENOUGH_INFO
Expected behavior
NOT_ENOUGH_INFO
Actual behavior
NOT_ENOUGH_INFO
OpenClaw version
2026.4.22
Operating system
debian 13
Install method
rpm global
Model
gemma 4
Provider / routing chain
openclaw
Additional provider/model setup details
No response
Logs, screenshots, and evidence
Impact and severity
No response
Additional information
No response