How retries work
A delivery attempt fails when DispatchQ gets a non-2xx response, network error, or timeout. If attempts remain, the job returns topending with next_retry_at.
Backoff formula
attempt is 1-based after each failed attempt.
Backoff table
| Failed attempt | Delay before next try |
|---|---|
| 1 | 20s |
| 2 | 40s |
| 3 | 80s |
| 4 | 160s |
| 5 | 320s |
| … | capped at 3600s |
max_attempts
- Set per job (
1to100, default3). - Once attempts are exhausted, job becomes
failed.
Failure callbacks
Ifcallback_url is set, DispatchQ sends a failure callback with status: failed and last_error when the job reaches terminal failure.
Monitoring retries
Use job reads/listing fields:retries_remaining: attempts leftnext_retry_in_seconds: countdown to next attemptlast_error: most recent failure reason