> ## Documentation Index
> Fetch the complete documentation index at: https://docs.framelane.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Retry Schedule

> Framelane retries failed webhook deliveries automatically on an exponential back-off schedule.

## Retry attempts

| Attempt     | Delay after previous |
| ----------- | -------------------- |
| 1 (initial) | —                    |
| 2           | 30 seconds           |
| 3           | 5 minutes            |
| 4           | 30 minutes           |
| 5           | 2 hours              |
| 6           | 8 hours              |
| 7           | 24 hours             |

After 7 attempts the delivery is marked **dead-lettered**. You can view and manually retry dead-lettered deliveries in the console or via the API.

## What counts as a failure?

* Non-`2xx` HTTP response from your endpoint
* Connection timeout (10 seconds)
* DNS failure

## Manual retry

```bash theme={null}
curl -X POST \
  https://api.framelane.io/v1/webhooks/{webhook_id}/deliveries/{delivery_id}/retry \
  -H "Authorization: Bearer $FRAMELANE_API_KEY"
```

## Best practices

* **Respond fast**: Return `200` immediately and process the payload asynchronously.
* **Be idempotent**: The same event may be delivered more than once. Key on `data.id` + `type` to deduplicate.
* **Monitor dead-letters**: Set an alert when `status == "dead_lettered"` on deliveries you care about.
