> ## Documentation Index
> Fetch the complete documentation index at: https://upstash-branch-rest-api-docs-270df88c-ba94c6.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Retry a Message Now

> Skip the retry delay and deliver a retrying QStash message immediately, from the console or the REST API.

When a delivery fails, QStash schedules the next attempt according to the message's
[retry delay](/qstash/features/retry). If you've already fixed the issue on your endpoint,
you don't need to wait for the next attempt. You can trigger it right away.

Retrying now does not add an extra attempt. It moves the already scheduled retry forward,
so the retry count and the remaining retries stay the same. If the delivery fails again,
QStash schedules the next retry as usual.

<Note>
  Only messages waiting for a retry (in `RETRY` state) can be retried now. Messages published
  to a [queue](/qstash/features/queues) are not supported.
</Note>

## Retrying via console

Head over to the [Upstash Console](https://console.upstash.com/qstash) and go to the `Logs` tab.
Find the message in `RETRY` state and press the `Retry Now` button:

<Frame>
  <img src="https://mintcdn.com/upstash-branch-rest-api-docs-270df88c-ba94c6/DtrHJpH0BIc7_ON8/img/qstash/retry-now.png?fit=max&auto=format&n=DtrHJpH0BIc7_ON8&q=85&s=ac40deeb8bee24724a184cef9abb4447" alt="Retry a message now from the Logs tab in the Upstash Console" width="1600" height="690" data-path="img/qstash/retry-now.png" />
</Frame>

## Retrying programmatically

You can retry a message now using the [REST API](/qstash/api-reference/messages/retry-a-message-now).

```shell cURL theme={null}
curl -XPOST \
    -H 'Authorization: Bearer XXX' \
    'https://qstash.upstash.io/v2/messages/<message_id>/retry'
```

The request returns `200` when the message is scheduled for immediate delivery, and `404`
when the message is not found or is not waiting for a retry.

## Message ID

If you don't know the message ID, you can list the messages waiting for a retry
using the [logs API](/qstash/api-reference/logs/list-logs) with the `RETRY` state filter.

<CodeGroup>
  ```shell cURL theme={null}
  curl \
      -H 'Authorization: Bearer XXX' \
      'https://qstash.upstash.io/v2/logs?state=RETRY'
  ```

  ```typescript Typescript theme={null}
  import { Client } from "@upstash/qstash";

  const client = new Client({ token: "<QSTASH_TOKEN>" });
  const { logs } = await client.logs({
    filter: { state: "RETRY" },
  });
  ```

  ```python Python theme={null}
  from qstash import QStash

  client = QStash("<QSTASH_TOKEN>")
  res = client.log.list(filter={"state": "RETRY"})
  ```
</CodeGroup>
