Skip to main content
The failureUrl is an advanced option that sends failure callback to a different endpoint rather than to the workflow endpoint (failure function). This approach is useful for handling failures on separate infrastructure.
You can use either failureFunction or failureUrl, but not both. These options are mutually exclusive.
For most users, Failure Function is the better choice because:
  • It runs alongside your workflow and has access to the same context and dependencies
  • Failure function requests are automatically retried on failure as well.
  • You can manually retry failure function if it fails via DLQ.
If you think this advanced option fits your need, you can configure it by passing failureUrl configuration.
import { Client } from "@upstash/workflow";

const client = new Client({ token: "<QSTASH_TOKEN>" })

const { workflowRunId } = await client.trigger({
  url: "https://<YOUR_WORKFLOW_URL>/workflow"
  failureUrl: "https://<YOUR_FAILURE_URL>/workflow-failure",
  applyConfiguration: true,
})