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

# Retry and replay

> Send events again after you fix a destination.

## Retry or replay

| Action                        | Sends to                                       | Makes a new event | Where            |
| ----------------------------- | ---------------------------------------------- | ----------------- | ---------------- |
| **Retry**                     | Only the destinations whose delivery is `dead` | No                | Event page, API  |
| **Retry one destination**     | One destination whose last attempt failed      | No                | Event page       |
| **Replay**                    | Every active destination                       | Yes               | Event page       |
| **Replay to one destination** | One destination                                | Yes               | Event page       |
| **Batch retry**               | The failed destinations of many events         | No                | Needs retry view |

A retry never sends the event again to a destination that already got it. Use retry after an outage. Use replay to test a new destination with an old event.

Each retry or replay uses one credit for each event. You can do up to 60 retries and replays a minute.

## Batch retry

The **Needs retry** view on the Events page lists events whose latest attempt to an active destination is `dead`. This includes an event that reached some destinations but not all.

1. Open **Events** and click the **Needs retry** chip. Or open the link in a failure alert email.
2. Add filters if you need them: destination, time range, source or a search.
3. Tick events (up to 100), or click **Retry all** to retry every event that matches.

Owners and admins can do batch retries. With a destination filter, hooksnode retries that destination only.

An event leaves the view when its retry is queued. It comes back only if that retry is also `dead`.

<Tip>The filters are in the page URL. Share the link and your teammate sees the same list.</Tip>

## Retry from the API

```bash theme={null}
curl -X POST https://hooksnode.com/api/v1/projects/<project-id>/events/<event-id>/retry \
  -H "Authorization: Bearer $HOOKSNODE_API_KEY"
```

```json theme={null}
{ "enqueued": 2, "event_id": 1042 }
```

The API answers `409` when no delivery of the event is `dead`, and `402` when you have no credits. See the [API reference](/api-reference/introduction).

## Buffered events

On a Pro project, an event that arrives when no active destination takes its source is **buffered**. hooksnode stores it and charges one credit, but sends it nowhere. The sender gets:

```json theme={null}
{ "status": "buffered", "callback_id": 1042 }
```

To send a buffered event, add a destination, open the event and click **Play**. hooksnode sends it to the destinations that are active now and take that source.

Buffered events are deleted after 30 days.

On the Free plan, a project with no destination refuses events with `400`.
