Skip to main content
OpenAI client retries turn on the OpenAI SDK’s built-in retry engine so transient 429s and network blips on the native client path are retried automatically.

Quick Start

1

Turn it on with one env var (zero code change)

The user runs an agent; transient rate limits and network blips retry automatically on the native OpenAI client path.
2

Pass max_retries through the client factory

3

Construct the client directly


How It Works

The value is forwarded into the underlying openai SDK, which honours Retry-After on 429s and applies exponential backoff for transient errors.
praisonai --auto uses LiteLLM first and only falls back to OpenAI on error. OPENAI_MAX_RETRIES therefore only takes effect on that fallback path — see Auto Mode Providers for the fallback flow.

Configuration Options

Precedence: explicit arg > OPENAI_MAX_RETRIES env var > SDK default.
Non-integer OPENAI_MAX_RETRIES (e.g. "abc") is silently ignored and the SDK default takes over — no crash.

Which Approach to Use

Match the retry surface to how broadly you want the policy to apply.

Common Patterns

Turn it on globally with one env var — for production deployments where every call should retry the same way.
Scope it to one call site — pass max_retries explicitly when you build the client for a hot path.
AutoAgents also accepts a max_retries argument, but that controls its own config-generation retries — it is separate from the SDK-level max_retries documented here. Use OPENAI_MAX_RETRIES for a process-wide native-client policy.
Local server (LM Studio / vLLM) — leave it off — local endpoints rarely emit Retry-After, so retries are wasted latency.

Best Practices

One place, no code change, easy to bump per environment. Set OPENAI_MAX_RETRIES once and every native call inherits it.
This matches the SDK’s typical rate-limit budget without inflating tail latency.
Combining OPENAI_MAX_RETRIES=5 with Agent(retry=True, max_retries=3) multiplies attempts (5 × 3 = 15). Pick one layer for the primary retry policy and use the other only as a safety net.
Retries help transient blips; for provider outages use LLMConfig(fallbacks=[...]) — see Model Fallback.

Agent Retry

Retry the LiteLLM-backed agent loop with jittered exponential backoff.

Model Fallback

Fail over to alternate models during provider outages.

LLM Error Classification

Understand which errors are retryable versus fatal.