Retry Failure Callback
curl --request POST \
--url https://qstash-{region}.upstash.io/v2/workflows/dlq/callback/{dlqId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://qstash-{region}.upstash.io/v2/workflows/dlq/callback/{dlqId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://qstash-{region}.upstash.io/v2/workflows/dlq/callback/{dlqId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://qstash-{region}.upstash.io/v2/workflows/dlq/callback/{dlqId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://qstash-{region}.upstash.io/v2/workflows/dlq/callback/{dlqId}"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://qstash-{region}.upstash.io/v2/workflows/dlq/callback/{dlqId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://qstash-{region}.upstash.io/v2/workflows/dlq/callback/{dlqId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"workflowRunId": "<string>",
"workflowCreatedAt": 123
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}DLQ
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.
POST
/
v2
/
workflows
/
dlq
/
callback
/
{dlqId}
Retry Failure Callback
curl --request POST \
--url https://qstash-{region}.upstash.io/v2/workflows/dlq/callback/{dlqId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://qstash-{region}.upstash.io/v2/workflows/dlq/callback/{dlqId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://qstash-{region}.upstash.io/v2/workflows/dlq/callback/{dlqId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://qstash-{region}.upstash.io/v2/workflows/dlq/callback/{dlqId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://qstash-{region}.upstash.io/v2/workflows/dlq/callback/{dlqId}"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://qstash-{region}.upstash.io/v2/workflows/dlq/callback/{dlqId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://qstash-{region}.upstash.io/v2/workflows/dlq/callback/{dlqId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"workflowRunId": "<string>",
"workflowCreatedAt": 123
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
bearerAuthbearerAuthQuery
QStash authentication token
Path Parameters
The DLQ ID of the failed workflow run whose failure callback should be retried.
Was this page helpful?