Error handling strategies
Different errors need different handling strategies:
The sections below cover each strategy with code examples.
- Transient errors
- LLM-recoverable
- User-fixable
- Provider outage
- Excessive calls
- Unexpected
Add retry middleware to automatically retry network issues and rate limits. Model calls and tool calls each have their own retry middleware with exponential backoff:
Rate limiting
There are two complementary ways to limit resource usage: controlling the request rate to your model provider, and capping the total number of calls per run.Provider rate limiting
Chat model providers impose a limit on the number of invocations that can be made in a given time period. To control the rate at which requests are made, initialize your model with arate_limiter:
Call limits
Without limits, a confused agent can burn through your LLM API budget in minutes by looping on the same tool call or making hundreds of model calls. Set caps on both model calls and tool executions per run:run_limit to cap calls within a single invocation (resets each turn). Use thread_limit to cap calls across an entire conversation (requires a checkpointer). See ModelCallLimitMiddleware and ToolCallLimitMiddleware for the full configuration.
Retries
Transient failures (network timeouts, rate limits) should be retried automatically. Model calls and tool calls each have their own retry middleware with exponential backoff:read_file that fails will not benefit from a retry, but a web search that times out probably will. See ModelRetryMiddleware for the full configuration.
Fallbacks
If your primary model provider goes down entirely, the fallback middleware switches to an alternative model:Error handling
When a tool raises an exception during execution, the agent run halts by default. Use ToolErrorMiddleware to catch specific exceptions and convert them into error ToolMessages that the model can see and recover from, instead of crashing the run.ToolErrorMiddleware requires langchain>=1.3.14.Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

