Available on all Portkey plans.
- Up to 5 retry attempts
- Trigger on specific error codes
- Exponential backoff to prevent overload
- Optionally respect provider’s
Retry-Afterheaders
Examples
The
@provider-slug/model-name format automatically routes to the correct provider. Set up providers in Model Catalog.Retry on Specific Error Codes
Default retry codes: [429, 500, 502, 503, 504] Override withon_status_codes:
When
on_status_codes is set, retries trigger only on those codes—not the defaults.Respect Provider Retry Headers
Enableuse_retry_after_headers to use the provider’s retry-after-ms, x-ms-retry-after-ms, or retry-after headers instead of exponential backoff.
- Falls back to exponential backoff if headers aren’t present
- Cumulative retry wait capped at 60 seconds
- Single
Retry-Aftervalue > 60s fails immediately
Exponential Backoff
| Attempt | Wait Time |
|---|---|
| Initial | Immediate |
| 1st retry | 1 second |
| 2nd retry | 2 seconds |
| 3rd retry | 4 seconds |
| 4th retry | 8 seconds |
| 5th retry | 16 seconds |
Retry Attempt Header
Checkx-portkey-retry-attempt-count in responses:
| Value | Meaning |
|---|---|
-1 | All retries exhausted, request failed |
0 | No retries configured |
>0 | Successful on this retry attempt |
Retry attempts aren’t logged individually. Response times are summed in a single log entry.

