fabro/lib
Bryan Helmkamp 18a71ac310
Classify provider 412s as failover-eligible account lockouts
Fireworks reports an account suspension (spending cap reached or unpaid
invoices) as HTTP 412 with code PRECONDITION_FAILED. The status had no
explicit mapping, and the openai_compatible dialect extracts error.type
("error") as the code, so the suspension fell through to InvalidRequest
-- a deterministic request defect -- which suppressed both retry and the
configured model fallback chain. A live run then died mid-stage with
five healthy fallback candidates configured.

No LLM request carries conditional-request preconditions, so a 412 is
never about the request. Map it to AccessDenied, the same family as the
account_deactivated error code: non-retryable on the same provider,
eligible for failover to a provider with independent billing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 12:08:36 -04:00
..
apps Return 422 for invalid workflow-version dependencies 2026-08-13 16:34:52 -04:00
components Classify provider 412s as failover-eligible account lockouts 2026-08-18 12:08:36 -04:00
foundation Revert "Serialize workflow-version canonical bytes once at construction" 2026-08-13 16:34:52 -04:00
packages/fabro-api-client Add immutable workflow version resource 2026-08-13 16:34:52 -04:00