fix(ai): retry transient client statuses
This commit is contained in:
parent
771174b5c3
commit
adcf010368
2 changed files with 7 additions and 2 deletions
|
|
@ -135,7 +135,7 @@ export function classifyProviderFailure(input: ProviderFailure): LLMError["reaso
|
||||||
rateLimit: input.rateLimit,
|
rateLimit: input.rateLimit,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (input.status !== undefined && input.status >= 500)
|
if (input.status === 408 || input.status === 409 || (input.status !== undefined && input.status >= 500))
|
||||||
return new ProviderInternalReason({
|
return new ProviderInternalReason({
|
||||||
...common,
|
...common,
|
||||||
status: input.status,
|
status: input.status,
|
||||||
|
|
@ -145,7 +145,6 @@ export function classifyProviderFailure(input: ProviderFailure): LLMError["reaso
|
||||||
if (
|
if (
|
||||||
input.status === 400 ||
|
input.status === 400 ||
|
||||||
input.status === 404 ||
|
input.status === 404 ||
|
||||||
input.status === 409 ||
|
|
||||||
input.status === 413 ||
|
input.status === 413 ||
|
||||||
input.status === 422
|
input.status === 422
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,12 @@ describe("provider error classification", () => {
|
||||||
).toEqual(["ProviderInternal", "ProviderInternal"])
|
).toEqual(["ProviderInternal", "ProviderInternal"])
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test("classifies transient client statuses as provider internal", () => {
|
||||||
|
expect(
|
||||||
|
[408, 409].map((status) => classifyProviderFailure({ message: `HTTP ${status}`, status })._tag),
|
||||||
|
).toEqual(["ProviderInternal", "ProviderInternal"])
|
||||||
|
})
|
||||||
|
|
||||||
test("classifies nested provider codes when a top-level code is also present", () => {
|
test("classifies nested provider codes when a top-level code is also present", () => {
|
||||||
expect(
|
expect(
|
||||||
[
|
[
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue