curl https://qstash.upstash.io/v2/workflows/dlq \
-H "Authorization: Bearer <token>"
{
"cursor":"1752570296426-0",
"messages":[
{
"messageId":"msg_26hZCxZCuWyyTWPmSVBrNC1RADwpgWxPcak2rQD51EMjFMuzcW7qYXpPiDyw8Gd",
"url":"https://my.app/workflow",
"method":"POST",
"header":{
"Content-Type":[
"application/json"
]
},
"maxRetries":10,
"notBefore":1752829294505,
"createdAt":1752829294505,
"failureCallback":"https://my.app/workflow",
"callerIP":"88.240.188.2",
"workflowRunId":"wfr_5XAx4IJergqkGK1v23VzR",
"workflowCreatedAt":1752829293531,
"workflowUrl":"https://my.app/workflow",
"responseStatus":489,
"responseHeader":{
"Content-Type":[
"text/plain;charset=UTF-8"
]
},
"responseBody":"{\"error\":\"WorkflowNonRetryableError\",\"message\":\"this workflow has stopped\"}",
"failureCallbackInfo":{
"state":"CALLBACK_SUCCESS",
"responseStatus":200,
"responseBody":"{\"workflowRunId\":\"wfr_Q_khHG-a414M-xKRh2kNI\"}",
"responseHeaders":{
"Content-Type":[
"text/plain;charset=UTF-8"
]
}
},
"dlqId":"1752829295505-0"
}
]
}
DLQ
List workflow runs in the DLQ
List and paginate through all failed workflow runs currently inside the DLQ
GET
/
v2
/
workflows
/
dlq
curl https://qstash.upstash.io/v2/workflows/dlq \
-H "Authorization: Bearer <token>"
{
"cursor":"1752570296426-0",
"messages":[
{
"messageId":"msg_26hZCxZCuWyyTWPmSVBrNC1RADwpgWxPcak2rQD51EMjFMuzcW7qYXpPiDyw8Gd",
"url":"https://my.app/workflow",
"method":"POST",
"header":{
"Content-Type":[
"application/json"
]
},
"maxRetries":10,
"notBefore":1752829294505,
"createdAt":1752829294505,
"failureCallback":"https://my.app/workflow",
"callerIP":"88.240.188.2",
"workflowRunId":"wfr_5XAx4IJergqkGK1v23VzR",
"workflowCreatedAt":1752829293531,
"workflowUrl":"https://my.app/workflow",
"responseStatus":489,
"responseHeader":{
"Content-Type":[
"text/plain;charset=UTF-8"
]
},
"responseBody":"{\"error\":\"WorkflowNonRetryableError\",\"message\":\"this workflow has stopped\"}",
"failureCallbackInfo":{
"state":"CALLBACK_SUCCESS",
"responseStatus":200,
"responseBody":"{\"workflowRunId\":\"wfr_Q_khHG-a414M-xKRh2kNI\"}",
"responseHeaders":{
"Content-Type":[
"text/plain;charset=UTF-8"
]
}
},
"dlqId":"1752829295505-0"
}
]
}
List all failed workflow runs currently inside the Dead Letter Queue.
Request
string
By providing a cursor you can paginate through all of the workflow runs in the DLQ
string
Filter DLQ workflow runs by workflow run id.
string
Filter DLQ workflow runs by workflow url.
number
Filter DLQ workflow runs by starting date, in milliseconds (Unix timestamp). This is inclusive.
number
Filter DLQ workflow runs by ending date, in milliseconds (Unix timestamp). This is inclusive.
number
Filter DLQ workflow runs by HTTP response status code.
string
Filter DLQ workflow runs by IP address of the publisher.
string
Filter DLQ workflow runs by the state of failure callback (failure function or failure URL)
number
The number of workflow runs to return. Default and maximum is 100.
string
Filter workflow run by the label assigned by the user.
Response
string
A cursor which you can use in subsequent requests to paginate through all
workflow runs. If no cursor is returned, you have reached the end of the workflow runs.
Array
Hide message
Hide message
string
required
Unique identifier for the DLQ message.
string
The URL of the workflow endpoint.
string
HTTP method used for the request.
object
Initial request headers for workflow run, including the configuration headers.
string
Request payload of the workflow run (if UTF-8).
string
Request body (base64-encoded, if not UTF-8).
integer
Maximum number of retries for the workflow run.
integer
Earliest time (Unix ms) the message could be processed.
integer
Timestamp (Unix ms) when the message was created.
string
Failure callback URL (if set).
object
Failure callback request headers.
string
IP address of the publisher.
string
Workflow run ID (if applicable).
integer
Timestamp (Unix ms) when the workflow run was created.
string
Workflow URL.
string
Flow control key (if set).
integer
Rate limit (if set).
integer
Parallelism (if set).
integer
Period (if set).
integer
HTTP response status code of the last failed delivery attempt.
object
HTTP response headers of the last failed delivery attempt.
string
HTTP response body (if UTF-8).
string
HTTP response body (base64-encoded, if not UTF-8).
object
Detailed information about the failure callback, including state, response body, response status and response headers.
string
The label of the run assigned by the user.
curl https://qstash.upstash.io/v2/workflows/dlq \
-H "Authorization: Bearer <token>"
{
"cursor":"1752570296426-0",
"messages":[
{
"messageId":"msg_26hZCxZCuWyyTWPmSVBrNC1RADwpgWxPcak2rQD51EMjFMuzcW7qYXpPiDyw8Gd",
"url":"https://my.app/workflow",
"method":"POST",
"header":{
"Content-Type":[
"application/json"
]
},
"maxRetries":10,
"notBefore":1752829294505,
"createdAt":1752829294505,
"failureCallback":"https://my.app/workflow",
"callerIP":"88.240.188.2",
"workflowRunId":"wfr_5XAx4IJergqkGK1v23VzR",
"workflowCreatedAt":1752829293531,
"workflowUrl":"https://my.app/workflow",
"responseStatus":489,
"responseHeader":{
"Content-Type":[
"text/plain;charset=UTF-8"
]
},
"responseBody":"{\"error\":\"WorkflowNonRetryableError\",\"message\":\"this workflow has stopped\"}",
"failureCallbackInfo":{
"state":"CALLBACK_SUCCESS",
"responseStatus":200,
"responseBody":"{\"workflowRunId\":\"wfr_Q_khHG-a414M-xKRh2kNI\"}",
"responseHeaders":{
"Content-Type":[
"text/plain;charset=UTF-8"
]
}
},
"dlqId":"1752829295505-0"
}
]
}
Was this page helpful?