Commit c57dccd
committed
fix(agents): classify provider upstream_error as fallbackable transient failure
When a provider returns an error payload shaped like
{"type":"upstream_error","message":"Upstream request failed"} the failover
classifier left it unclassified, so the turn ended with "LLM request failed"
and no configured fallback model was attempted.
The serverError pattern list already covered "upstream error" and
"upstream connect error" but not the "upstream_error" type token or the
"Upstream request failed" message phrasing, so these provider-side transient
failures fell through to the unclassified path that skips model fallback.
Add both patterns to serverError so they classify as a transient server_error
(mapped to the timeout failover reason), letting the fallback chain rotate to
the next candidate. OpenClaw's own generic "LLM request failed" text is
unaffected and stays unclassified to avoid fallback loops on internal failures.
Closes #955191 parent d1cbe29 commit c57dccd
2 files changed
Lines changed: 32 additions & 0 deletions
Lines changed: 30 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
177 | 177 | | |
178 | 178 | | |
179 | 179 | | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
119 | 119 | | |
120 | 120 | | |
121 | 121 | | |
| 122 | + | |
122 | 123 | | |
| 124 | + | |
123 | 125 | | |
124 | 126 | | |
125 | 127 | | |
| |||
0 commit comments