Retry Fixes
Add retry logic with backoff.
Not available in this release
No new fix is generated or deployed today: fix generation runs after a diagnosis, which is held for the beta, and fix deployment is gated off. This page describes the fix type as designed.
Retry fixes add automatic retry with configurable exponential backoff.
Use Cases
- Transient API errors
- Rate limiting
- Network timeouts
- Temporary unavailability
Configuration
{
"fix_id": "fix-retry-001",
"fix_type": "retry",
"config": {
"max_retries": 3,
"initial_delay_ms": 1000,
"exponential_base": 2.0,
"max_delay_ms": 30000,
"jitter": true,
"retry_on": ["TimeoutError", "ConnectionError"]
}
}Options
| Option | Type | Default | Description |
|---|---|---|---|
max_retries | int | 3 | Maximum retry attempts |
initial_delay_ms | int | 1000 | Initial backoff delay in milliseconds |
exponential_base | float | 2.0 | Exponential multiplier |
max_delay_ms | int | 30000 | Maximum backoff delay in milliseconds |
jitter | bool | true | Add randomness to delay |
retry_on | string[] | [] (all) | Error type strings to retry on |
Backoff Calculation
With exponential backoff (initial_delay_ms=1000, exponential_base=2.0):
Attempt 1: Wait 1000ms
Attempt 2: Wait 2000ms
Attempt 3: Wait 4000ms
Attempt 4: Wait 8000ms (capped at max_delay_ms)
With jitter enabled, the computed delay is multiplied by a random factor between 0.5 and 1.5:
Attempt 1: Wait 500-1500ms
Attempt 2: Wait 1000-3000ms
...
Retry Filtering
Use retry_on to specify which exception types to retry. When empty, all errors are retried:
{
"retry_on": [
"TimeoutError",
"ConnectionError",
"RateLimitError"
]
}Or retry all errors by leaving retry_on empty:
{
"retry_on": []
}Common Fixes
API Timeout
{
"fix_type": "retry",
"config": {
"max_retries": 3,
"initial_delay_ms": 2000,
"exponential_base": 2.0,
"max_delay_ms": 30000,
"retry_on": ["TimeoutError"]
}
}Rate Limiting
{
"fix_type": "retry",
"config": {
"max_retries": 5,
"initial_delay_ms": 5000,
"exponential_base": 2.0,
"max_delay_ms": 60000,
"jitter": true,
"retry_on": ["RateLimitError"]
}
}LLM Errors
{
"fix_type": "retry",
"config": {
"max_retries": 2,
"initial_delay_ms": 1000,
"exponential_base": 2.0,
"retry_on": ["JSONDecodeError", "ValidationError"]
}
}Targeting
A fix applies by its error_code — an exact code, or a pattern ending in * that matches by prefix. There is no way to target specific tools.
{
"error_code": "TOOL.EXECUTION.TIMEOUT"
}