Understanding Retries
FirmHook automatically retries failed webhook deliveries so you don't have to build retry logic into your infrastructure.
How retries work
When FirmHook forwards an event to your endpoint and the delivery fails, it schedules another attempt using exponential backoff:
| Attempt | Delay |
|---|---|
| 1 (initial) | Immediate |
| 2 | ~30 seconds |
| 3 | ~5 minutes |
| 4 | ~30 minutes |
| 5 | ~2 hours |
A delivery is considered failed if:
- Your endpoint returns a non-2xx HTTP status code
- Your endpoint does not respond within the configured timeout (default 30 seconds)
- The connection is refused or times out at the network level
A delivery is considered successful if your endpoint returns any 2xx status code.
Retry limits
Each endpoint has a Max retries setting (0–5, default 5). Once all attempts are exhausted, the event chain for that endpoint is marked dead.
You can change the retry limit per endpoint at any time in Endpoints → Edit.
Event and chain statuses
FirmHook tracks status at two levels:
Event status — the aggregate across all matched endpoints:
| Status | Meaning |
|---|---|
pending | Not yet processed |
processing | At least one delivery in progress |
delivered | All endpoint chains succeeded |
partial | Some chains succeeded, some failed or dead |
dead | All chains exhausted with no successful delivery |
Chain status — per-endpoint delivery outcome:
| Status | Meaning |
|---|---|
pending | Queued, not yet attempted |
delivered | Endpoint returned 2xx |
retrying | A previous attempt failed; next attempt scheduled |
dead | All attempts exhausted without success |
Viewing retry history
Click any event in the Events list to open the event detail page. Each matched endpoint has a timeline showing every delivery attempt: timestamp, HTTP status, response body, and — when available — an AI-generated explanation of the failure.
Manual replay
You can manually re-deliver any event from the event detail page:
- Replay all — re-delivers to all matched endpoints
- Replay failed — re-delivers only to endpoints with a
deador failed chain
Replays create new delivery attempts and are counted against your plan's event quota.
Disabling retries
Set Max retries to 0 on an endpoint to disable automatic retries entirely. FirmHook will attempt delivery once and mark the chain dead on failure with no further attempts.
What's next?
- AI Error Explanations — understand why deliveries fail
- Production Deployment — configure retry limits for production