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

# Get Failed Workflow Run

> Get details of a specific failed workflow run from the DLQ.




## OpenAPI

````yaml /workflow/openapi.yaml get /v2/workflows/dlq/{dlqId}
openapi: 3.1.0
info:
  title: Upstash Workflow REST API
  description: >
    Upstash Workflow is a serverless workflow orchestration service built on top
    of Upstash QStash and Upstash Redis.
  version: 2.0.0
  contact:
    name: Upstash
    url: https://upstash.com
servers:
  - url: https://qstash.upstash.io
security:
  - bearerAuth: []
  - bearerAuthQuery: []
paths:
  /v2/workflows/dlq/{dlqId}:
    get:
      tags:
        - DLQ
      summary: Get Failed Workflow Run
      description: |
        Get details of a specific failed workflow run from the DLQ.
      parameters:
        - in: path
          name: dlqId
          required: true
          schema:
            type: string
          description: The DLQ ID of the failed workflow run.
      responses:
        '200':
          description: Failed workflow run details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowDLQMessage'
        '400':
          description: Bad Request - Invalid DLQ ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: DLQ message not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    WorkflowDLQMessage:
      type: object
      properties:
        dlqId:
          type: string
          description: The DLQ ID of the failed workflow message.
        workflowUrl:
          type: string
          description: The URL of the workflow.
        workflowRunId:
          type: string
          description: The ID of the workflow run.
        workflowCreatedAt:
          type: integer
          format: int64
          description: >-
            The timestamp when the workflow run was created (Unix timestamp in
            milliseconds).
        url:
          type: string
          description: The URL of the failed workflow step.
        method:
          type: string
          description: The HTTP method used for the workflow step.
        header:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: The HTTP headers sent to the workflow step.
        body:
          type: string
          description: >-
            The body of the message if it is composed of utf8 chars only, empty
            otherwise.
        bodyBase64:
          type: string
          description: >-
            The base64 encoded body if the body contains a non-utf8 char only,
            empty otherwise.
        maxRetries:
          type: integer
          description: >-
            The number of retries that should be attempted in case of delivery
            failure.
        createdAt:
          type: integer
          format: int64
          description: The unix timestamp in milliseconds when the message was created.
        failureCallback:
          type: string
          description: The url where we send a callback to after the workflow fails.
        callerIP:
          type: string
          description: IP address of the publisher of this workflow.
        label:
          type: string
          description: The label assigned to the workflow run.
        flowControlKey:
          type: string
          description: The flow control key used for rate limiting.
        failureFunctionState:
          type: string
          description: The state of the failure function if applicable.
        responseStatus:
          type: integer
          description: The HTTP status code received from the destination API.
        responseHeader:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: The HTTP response headers received from the destination API.
        responseBody:
          type: string
          description: >-
            The body of the response if it is composed of utf8 chars only, empty
            otherwise.
        responseBodyBase64:
          type: string
          description: >-
            The base64 encoded body of the response if the body contains a
            non-utf8 char only, empty otherwise.
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Error message
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: QStash authentication token
    bearerAuthQuery:
      type: apiKey
      in: query
      name: qstash_token
      description: QStash authentication token passed as a query parameter

````