# Resume Workflow from DLQ

## Endpoint

`POST https://qstash-{region}.upstash.io/v2/workflows/dlq/resume/{dlqId}`

## Parameters

- `dlqId` (path, string, required): The DLQ ID of the workflow run to resume.
- `Upstash-Retries` (header, integer): Override the number of retries for the remaining workflow steps.
- `Upstash-Delay` (header, string): Override the delay before executing the next workflow step. Format is `<value><unit>` (e.g., "10s", "5m").
- `Upstash-Retry-Delay` (header, string): Override the retry delay expression for the remaining workflow steps.
- `Upstash-Flow-Control-Key` (header, string): Override the flow control key for the remaining workflow steps.
- `Upstash-Flow-Control-Value` (header, string): Override the flow control configuration in the format `parallelism=<value>, rate=<value>, period=<value>`.
- `Upstash-Label` (header, string): Override the label(s) for the remaining workflow steps.

You can assign multiple labels by providing a comma-separated list.

Example: `label_1,label_2`

- `Upstash-Failure-Callback` (header, string): Override the failure callback URL for the remaining workflow steps.

## Responses

### 200 - Workflow resumed successfully

- `workflowRunId` (string): The ID of the resumed workflow run (a new ID is generated for the resumed run).
- `workflowCreatedAt` (integer): The timestamp when the resumed workflow run was created (Unix timestamp in milliseconds).

### 400 - Bad Request - Invalid DLQ ID, not a workflow message, or workflow doesn't support resume

- `error` (string, required): Error message

### 401 - Unauthorized

- `error` (string, required): Error message

### 404 - DLQ message not found

- `error` (string, required): Error message

### 500 - Internal Server Error

- `error` (string, required): Error message

## cURL

```bash
curl --request POST \
  --url https://qstash-{region}.upstash.io/v2/workflows/dlq/resume/{dlqId} \
  --header 'Authorization: Bearer <token>'
```
