---
title: "Restart Workflow from DLQ"
method: POST
path: "/v2/workflows/dlq/restart/{dlqId}"
tags: ["DLQ"]
---

# Restart Workflow from DLQ

`POST /v2/workflows/dlq/restart/{dlqId}`

## Request

- Base URL: `https://qstash-eu-central-1.upstash.io`
- URL: `https://qstash-eu-central-1.upstash.io/v2/workflows/dlq/restart/{dlqId}`
- Auth: one of:
  - HTTP bearer
  - API key in query parameter `qstash_token`
- TypeScript: <https://skmtc.dev/upstash/apis/upstash-workflow-rest-api/docs/v2/workflows/dlq/restart/:dlqId/post.ts> (a function with typed inputs; its response is checked against the schema)

Restart a failed workflow run from the DLQ. The workflow will start from the beginning.

Unlike resume, which continues from where the workflow failed, restart executes the entire workflow
from the first step. A new workflow run ID is generated and all steps will be executed again.

## Path parameters

- `dlqId` string, required

## Headers

- `Upstash-Retries` integer
- `Upstash-Delay` string
- `Upstash-Retry-Delay` string
- `Upstash-Flow-Control-Key` string
- `Upstash-Flow-Control-Value` string
- `Upstash-Label` string
- `Upstash-Failure-Callback` string

## Response `200`

Workflow restarted successfully

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

## Other responses

- `400`: Bad Request - Invalid DLQ ID, not a workflow message, or workflow doesn't support restart
- `401`: Unauthorized
- `404`: DLQ message not found
- `500`: Internal Server Error

---

[API](https://skmtc.dev/upstash/apis/upstash-workflow-rest-api.md) - [All operations](https://skmtc.dev/upstash/apis/upstash-workflow-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/upstash/apis/upstash-workflow-rest-api/revisions/251bee05a7ec?raw)
