Skip to main content

Module reliable

Module reliable 

Source

Structs§

ProviderFallbackInfo
Info about a model_provider fallback that occurred during a request.
ReliableModelProvider
ModelProvider wrapper with retry + auth-key rotation. The model_provider Vec exists for tests to exercise multi-provider failover; production wiring always passes a single primary. Per-model failover chains are also test-only — the schema no longer surfaces them.

Functions§

is_auth_error
Check if an error indicates an authentication/authorization failure. Used by channels to evict cached model_providers whose OAuth tokens may have expired so the next request triggers a fresh credential resolution.
is_context_window_exceeded
is_non_retryable
Check if an error is non-retryable (client errors that won’t resolve with retries).
is_tool_schema_error
Check if an error is a tool schema validation failure (e.g. Groq returning “tool call validation failed: attempted to call tool ‘…’ which was not in request”). These errors should NOT be classified as non-retryable because the model_provider’s built-in fallback logic (compatible.rs::is_native_tool_schema_unsupported) can recover by switching to prompt-guided tool instructions.
scope_provider_fallback
Run the given future within a provider-fallback scope. Both record_provider_fallback (inside ReliableModelProvider) and take_last_provider_fallback (post-loop channel code) must execute within this scope for the data to be visible.
take_last_provider_fallback
Take (consume) the last model_provider fallback info, if any. Must be called within a scope_provider_fallback scope.