> ## 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.

# Retry Failure Callback

> If the failure callback for a workflow run has failed, you can use this endpoint to manually trigger the failure callback again. 
This is useful for ensuring that your system is notified of workflow failures even if the original callback attempt did not succeed.

The state of the failure callback for each workflow run is included in the DLQ message response as failureCallbackInfo.state. 
You can filter for all workflow runs with a failed failure callback by using the failureCallbackState filter when listing workflow runs in the DLQ with the `/v2/workflows/dlq` endpoint.




## OpenAPI

````yaml /workflow/openapi.yaml post /v2/workflows/dlq/callback/{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/callback/{dlqId}:
    post:
      tags:
        - DLQ
      summary: Retry Failure Callback
      description: >
        If the failure callback for a workflow run has failed, you can use this
        endpoint to manually trigger the failure callback again. 

        This is useful for ensuring that your system is notified of workflow
        failures even if the original callback attempt did not succeed.


        The state of the failure callback for each workflow run is included in
        the DLQ message response as failureCallbackInfo.state. 

        You can filter for all workflow runs with a failed failure callback by
        using the failureCallbackState filter when listing workflow runs in the
        DLQ with the `/v2/workflows/dlq` endpoint.
      parameters:
        - in: path
          name: dlqId
          required: true
          schema:
            type: string
          description: >-
            The DLQ ID of the failed workflow run whose failure callback should
            be retried.
      responses:
        '200':
          description: Failure callback retried successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  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).
        '400':
          description: >-
            Bad Request. Workflow doesn't have a failed callback, callback is
            already in-progress, succeeded, or was canceled
          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:
    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

````