diff --git a/docs.json b/docs.json index 15d05166f..eb0577829 100644 --- a/docs.json +++ b/docs.json @@ -2125,8 +2125,7 @@ "POST /v2/flowControl/{flowControlKey}/pin", "POST /v2/flowControl/{flowControlKey}/unpin", "POST /v2/flowControl/{flowControlKey}/resetRate", - "GET /v2/globalParallelism", - "GET /v2/keys/rotate" + "GET /v2/globalParallelism" ] }, { diff --git a/llms-full.txt b/llms-full.txt index 55526efc8..5e488b682 100644 --- a/llms-full.txt +++ b/llms-full.txt @@ -15447,263 +15447,81 @@ npx upstash -# Get a Bulk Action -Source: https://upstash.com/docs/qstash/api-reference/bulk-actions/get-a-bulk-action +# Multiple IDs +Source: https://upstash.com/docs/qstash/api-reference/dlq/delete/delete-list-of-ids -/qstash/openapi.yaml get /v2/bulkActions/{actionId} -Retrieve the details and progress of a bulk action +Pass one or more `dlqIds` to delete only those DLQ entries. -# List Bulk Actions -Source: https://upstash.com/docs/qstash/api-reference/bulk-actions/list-bulk-actions - -/qstash/openapi.yaml get /v2/bulkActions -List the bulk actions created by filter-based message cancels - -# Bulk Delete DLQ messages -Source: https://upstash.com/docs/qstash/api-reference/dlq/bulk-delete-dlq-messages - -/qstash/openapi.yaml delete /v2/dlq -Delete multiple messages from the DLQ - -# Bulk Retry DLQ messages -Source: https://upstash.com/docs/qstash/api-reference/dlq/bulk-retry-dlq-messages - -/qstash/openapi.yaml post /v2/dlq/retry -Retry delivery of multiple messages from the DLQ - -# Delete a DLQ message -Source: https://upstash.com/docs/qstash/api-reference/dlq/delete-a-dlq-message - -/qstash/openapi.yaml delete /v2/dlq/{dlqId} -Manually remove a message from the DLQ - -# Get a DLQ message -Source: https://upstash.com/docs/qstash/api-reference/dlq/get-a-dlq-message - -/qstash/openapi.yaml get /v2/dlq/{dlqId} -Get a specific message from the DLQ - -# List DLQ messages -Source: https://upstash.com/docs/qstash/api-reference/dlq/list-dlq-messages - -/qstash/openapi.yaml get /v2/dlq -List and paginate through all messages currently in the DLQ - -# Retry a DLQ message -Source: https://upstash.com/docs/qstash/api-reference/dlq/retry-a-dlq-message - -/qstash/openapi.yaml post /v2/dlq/retry/{dlqId} -Retry delivery of a message from the DLQ - -# Get Flow Control Key -Source: https://upstash.com/docs/qstash/api-reference/flow-control/get-flow-control-key - -/qstash/openapi.yaml get /v2/flowControl/{flowControlKey} -Get details of a specific Flow Control key - -# Get Global Parallelism -Source: https://upstash.com/docs/qstash/api-reference/flow-control/get-global-parallelism - -/qstash/openapi.yaml get /v2/globalParallelism -Returns the current global parallelism usage across all flow control keys - -# List Flow Control Keys -Source: https://upstash.com/docs/qstash/api-reference/flow-control/list-flow-control-keys - -/qstash/openapi.yaml get /v2/flowControl -List all Flow Control keys - -# Pause Flow Control Key -Source: https://upstash.com/docs/qstash/api-reference/flow-control/pause-flow-control-key - -/qstash/openapi.yaml post /v2/flowControl/{flowControlKey}/pause -Pauses the delivery of messages associated with a specific flow-control key. - -# Pin Configuration for Flow Control Key -Source: https://upstash.com/docs/qstash/api-reference/flow-control/pin-configuration-for-flow-control-key - -/qstash/openapi.yaml post /v2/flowControl/{flowControlKey}/pin -Pins a processing configuration for a specific flow-control key. - -# Reset Rate for Flow Control Key -Source: https://upstash.com/docs/qstash/api-reference/flow-control/reset-rate-for-flow-control-key - -/qstash/openapi.yaml post /v2/flowControl/{flowControlKey}/resetRate -Resets the rate configuration state for a specific flow-control key. - -# Resume Flow Control Key -Source: https://upstash.com/docs/qstash/api-reference/flow-control/resume-flow-control-key - -/qstash/openapi.yaml post /v2/flowControl/{flowControlKey}/resume -Resumes the delivery of messages associated with a specific flow-control key. - -# Unpin Configuration for Flow Control Key -Source: https://upstash.com/docs/qstash/api-reference/flow-control/unpin-configuration-for-flow-control-key - -/qstash/openapi.yaml post /v2/flowControl/{flowControlKey}/unpin -Removes the pinned configuration for a specific flow-control key. - -# List Logs -Source: https://upstash.com/docs/qstash/api-reference/logs/list-logs - -/qstash/openapi.yaml get /v2/logs -Paginate through logs of published messages - -# Batch Messages -Source: https://upstash.com/docs/qstash/api-reference/messages/batch-messages - -/qstash/openapi.yaml post /v2/batch -Send multiple messages in a single request - -# Bulk Cancel Messages -Source: https://upstash.com/docs/qstash/api-reference/messages/bulk-cancel-messages - -/qstash/openapi.yaml delete /v2/messages -Delete all pending messages - -# Cancel a Message -Source: https://upstash.com/docs/qstash/api-reference/messages/cancel-a-message - -/qstash/openapi.yaml delete /v2/messages/{messageId} -Cancel a pending message - -# Enqueue a Message -Source: https://upstash.com/docs/qstash/api-reference/messages/enqueue-a-message - -/qstash/openapi.yaml post /v2/enqueue/{queueName}/{destination} -Enqueue a message to the specified queue - -# Get a Message -Source: https://upstash.com/docs/qstash/api-reference/messages/get-a-message - -/qstash/openapi.yaml get /v2/messages/{messageId} -Retrieve details of a specific message - -# Publish a Message -Source: https://upstash.com/docs/qstash/api-reference/messages/publish-a-message - -/qstash/openapi.yaml post /v2/publish/{destination} -Publish a message to the specified destination - -# Retry a Message Now -Source: https://upstash.com/docs/qstash/api-reference/messages/retry-a-message-now - -/qstash/openapi.yaml post /v2/messages/{messageId}/retry -Deliver a delayed message, or a message waiting for its next retry, immediately - -# Delete a queue -Source: https://upstash.com/docs/qstash/api-reference/queues/delete-a-queue - -/qstash/openapi.yaml delete /v2/queues/{queueName} -Deletes a queue - -# Get a Queue -Source: https://upstash.com/docs/qstash/api-reference/queues/get-a-queue - -/qstash/openapi.yaml get /v2/queues/{queueName} -Get details of a specific queue - -# List Queues -Source: https://upstash.com/docs/qstash/api-reference/queues/list-queues - -/qstash/openapi.yaml get /v2/queues -List all your queues - -# Pause Queue -Source: https://upstash.com/docs/qstash/api-reference/queues/pause-queue - -/qstash/openapi.yaml post /v2/queues/{queueName}/pause -Pause a queue to stop the delivery of enqueued messages - -# Resume Queue -Source: https://upstash.com/docs/qstash/api-reference/queues/resume-queue - -/qstash/openapi.yaml post /v2/queues/{queueName}/resume -Resumes a queue to starts the delivery of enqueued messages - -# Upsert a Queue -Source: https://upstash.com/docs/qstash/api-reference/queues/upsert-a-queue - -/qstash/openapi.yaml post /v2/queues -Updates or creates a queue - -# Create a Schedule -Source: https://upstash.com/docs/qstash/api-reference/schedules/create-a-schedule - -/qstash/openapi.yaml post /v2/schedules/{destination} -Create a schedule to send messages periodically - -# Delete a Schedule -Source: https://upstash.com/docs/qstash/api-reference/schedules/delete-a-schedule - -/qstash/openapi.yaml delete /v2/schedules/{scheduleId} -Delete a schedule +## Request -# Get a Schedule -Source: https://upstash.com/docs/qstash/api-reference/schedules/get-a-schedule + + DLQ IDs to delete. Repeat the parameter (`dlqIds=id1&dlqIds=id2`) or pass comma-separated values. + -/qstash/openapi.yaml get /v2/schedules/{scheduleId} -Get details of a specific schedule +## Response -# List schedules -Source: https://upstash.com/docs/qstash/api-reference/schedules/list-schedules +Number of DLQ entries deleted. -/qstash/openapi.yaml get /v2/schedules -List all schedules + -# Pause a Schedule -Source: https://upstash.com/docs/qstash/api-reference/schedules/pause-a-schedule +```sh curl +curl -X DELETE 'https://qstash-eu-central-1.upstash.io/v2/dlq?dlqIds=&dlqIds=' \ + -H 'Authorization: Bearer ' +``` -/qstash/openapi.yaml post /v2/schedules/{scheduleId}/pause -Pause a Schedule + -# Resume a Schedule -Source: https://upstash.com/docs/qstash/api-reference/schedules/resume-a-schedule + -/qstash/openapi.yaml post /v2/schedules/{scheduleId}/resume -Resume a paused Schedule +```json 200 OK +{ + "deleted": 2 +} +``` -# Get Signing Keys -Source: https://upstash.com/docs/qstash/api-reference/signing-keys/get-signing-keys + -/qstash/openapi.yaml get /v2/keys -Retrieve your current and next signing keys +# Multiple IDs +Source: https://upstash.com/docs/qstash/api-reference/dlq/retry/retry-list-of-ids -# Rotate Signing Keys -Source: https://upstash.com/docs/qstash/api-reference/signing-keys/rotate-signing-keys +Pass one or more `dlqIds` to retry only those DLQ entries. -/qstash/openapi.yaml post /v2/keys/rotate -Rotate your signing keys +A new message is created for each entry with the original body and headers, then the original entry is removed from the DLQ. -# Delete a URL Group -Source: https://upstash.com/docs/qstash/api-reference/url-groups/delete-a-url-group +## Query parameters -/qstash/openapi.yaml delete /v2/topics/{urlGroupName} -Delete a topic and all its endpoints + + DLQ IDs to retry. Repeat the parameter (`dlqIds=id1&dlqIds=id2`) or pass comma-separated values. + -# Get a URL Group -Source: https://upstash.com/docs/qstash/api-reference/url-groups/get-a-url-group +## Response -/qstash/openapi.yaml get /v2/topics/{urlGroupName} -Retrieve details of a specific URL Group +Publish responses in the same order as the supplied IDs. Each includes a `messageId` and may include `deduplicated`. +Empty; this request does not paginate. -# List URL Groups -Source: https://upstash.com/docs/qstash/api-reference/url-groups/list-url-groups + -/qstash/openapi.yaml get /v2/topics -List all your URL Groups +```sh curl +curl -X POST 'https://qstash-eu-central-1.upstash.io/v2/dlq/retry?dlqIds=&dlqIds=' \ + -H 'Authorization: Bearer ' \ + -H 'Upstash-Retries: 0' +``` -# Remove Endpoints -Source: https://upstash.com/docs/qstash/api-reference/url-groups/remove-endpoints + -/qstash/openapi.yaml delete /v2/topics/{urlGroupName}/endpoints -Remove one or more endpoints from a URL Group + -# Upsert URL Group and Endpoint -Source: https://upstash.com/docs/qstash/api-reference/url-groups/upsert-url-group-and-endpoint +```json 200 OK +{ + "cursor": "", + "responses": [ + { "messageId": "" }, + { "messageId": "" } + ] +} +``` -/qstash/openapi.yaml post /v2/topics/{urlGroupName}/endpoints -Add an endpoint to a URL Group + # API Rate Limit Response Source: https://upstash.com/docs/qstash/api/api-ratelimiting @@ -16770,6 +16588,12 @@ You can manually republish messages from the dead letter queue in the console. 1. **Retry** - Republish the message and remove it from the dead letter queue. Republished messages are just like any other message and will be retried automatically if they fail. 2. **Delete** - Delete the message from the dead letter queue. +## Bulk actions + +To act on every DLQ message matching a filter, use the dedicated [Retry Async Bulk](/docs/qstash/api-reference/dlq/retry/retry-bulk-action) or [Delete Async Bulk](/docs/qstash/api-reference/dlq/delete/delete-bulk-action) `POST` endpoint. Each returns an action ID you can use to [check progress](/docs/qstash/api-reference/bulk-actions/get-a-bulk-action). + +To act on specific DLQ entries, use [Retry Multiple IDs](/docs/qstash/api-reference/dlq/retry/retry-list-of-ids) or [Delete Multiple IDs](/docs/qstash/api-reference/dlq/delete/delete-list-of-ids). + ## Limitations Dead letter queues are subject only to a retention period that depends on your plan. Messages are deleted when their retention period expires. See the “Max DLQ Retention” row on the [QStash Pricing](https://upstash.com/pricing/qstash) page. @@ -20755,7 +20579,7 @@ Source: https://upstash.com/docs/qstash/overall/changelog * [Batch publish messages](/docs/qstash/api-reference/messages/batch-messages) -* [Bulk delete](/docs/qstash/api-reference/dlq/bulk-delete-dlq-messages) for DLQ +* [Bulk delete](/docs/qstash/api-reference/dlq/delete/delete-pagination-api) for DLQ @@ -20766,7 +20590,7 @@ Source: https://upstash.com/docs/qstash/overall/changelog * Put last response in DLQ -* DLQ [get message](/docs/qstash/api-reference/dlq/delete-a-dlq-message) +* DLQ [get message](/docs/qstash/api-reference/dlq/get-a-dlq-message) * Pass schedule ID to the header when calling the user's endpoint * Added more information to [callbacks](/docs/qstash/features/callbacks) @@ -109783,262 +109607,117 @@ Isaac Newton, an English polymath, was a key figure in the Scientific Revolution Marie Curie, a Polish-French physicist and chemist, conducted pioneering research on radioactivity and was the first woman to win a Nobel Prize. She is the only person to win Nobel Prizes in two scientific fields and her work has had a lasting impact on physics and chemistry. ``` -# Get a Bulk Action -Source: https://upstash.com/docs/workflow/api-reference/bulk-actions/get-a-bulk-action - -/workflow/openapi.yaml get /v2/workflows/bulkActions/{actionId} -Retrieve the details and progress of a bulk action - -# List Bulk Actions -Source: https://upstash.com/docs/workflow/api-reference/bulk-actions/list-bulk-actions - -/workflow/openapi.yaml get /v2/workflows/bulkActions -List the bulk actions created by filter-based workflow run cancels - -# Bulk Delete Failed Workflow Runs -Source: https://upstash.com/docs/workflow/api-reference/dlq/bulk-delete-failed-workflow-runs - -/workflow/openapi.yaml delete /v2/workflows/dlq -Delete multiple failed workflow runs from the DLQ. - -When a workflow run fails, it is moved to the DLQ. You can manually remove a failed workflow run from the DLQ using this endpoint. This is useful for cleaning up failed runs that you no longer wish to retry or analyze. - -You can either specify specific DLQ IDs to delete, or use filters to delete matching workflows. -When using filters without DLQ IDs, the operation supports pagination via cursor. - -# Bulk Restart Workflows from DLQ -Source: https://upstash.com/docs/workflow/api-reference/dlq/bulk-restart-workflows-from-dlq - -/workflow/openapi.yaml post /v2/workflows/dlq/restart -Restart multiple failed workflow runs from the DLQ. Each workflow will start from the beginning. - -Unlike resume, which continues from where workflows failed, restart executes the entire workflows -from the first step. New workflow run IDs are generated and all steps will be executed again. - -A maximum of 50 workflow runs can be restarted per request. If more runs are available, a cursor is returned, which can be used in subsequent requests to continue the operation. When no cursor is returned, all entries have been processed. -Each restarted workflow run is assigned a new random Run ID. - -# Bulk Resume Workflows from DLQ -Source: https://upstash.com/docs/workflow/api-reference/dlq/bulk-resume-workflows-from-dlq - -/workflow/openapi.yaml post /v2/workflows/dlq/resume -When a workflow run fails, it's automatically moved to the DLQ (Dead Letter Queue) where it can be analyzed and resumed. - The resume feature allows you to continue a failed workflow run from exactly where it failed, without re-executing successfully completed steps. - - This is particularly useful for long-running workflows where you don't want to lose progress from successful steps when a single step fails. - - When a workflow is resumed, it continues execution from the last failed step. A new workflow run ID is generated, - but the workflow maintains the state and results from previously completed steps. - - - You can make changes to the workflow code as long as these changes come after the failed steps. - However, making changes before the failed step will break the code and is not allowed. - - For more details, check out [Handle workflow route code changes](/workflow/howto/changes) page. - - -# Cancel In-Progress Failure Callback -Source: https://upstash.com/docs/workflow/api-reference/dlq/cancel-in-progress-failure-callback - -/workflow/openapi.yaml delete /v2/workflows/dlq/callback/{dlqId} -Cancel an in-progress failure callback for a failed workflow. - -When you retry a failed failure callback using the POST endpoint, it enters an in-progress state. -This endpoint allows you to cancel that in-progress callback before it completes. - -The callback must be in an in-progress state. If there's no in-progress callback, -the request will fail with a 400 error. - -# Delete Failed Workflow Run -Source: https://upstash.com/docs/workflow/api-reference/dlq/delete-failed-workflow-run - -/workflow/openapi.yaml delete /v2/workflows/dlq/{dlqId} -Delete a specific failed workflow run from the DLQ. - -Use this endpoint to remove a workflow from the DLQ after you have addressed the issue -or determined that the workflow should not be retried. - -# Get Failed Workflow Run -Source: https://upstash.com/docs/workflow/api-reference/dlq/get-failed-workflow-run - -/workflow/openapi.yaml get /v2/workflows/dlq/{dlqId} -Get details of a specific failed workflow run from the DLQ. - -# List Failed Workflow Runs -Source: https://upstash.com/docs/workflow/api-reference/dlq/list-failed-workflow-runs - -/workflow/openapi.yaml get /v2/workflows/dlq -List and paginate through all failed workflow runs currently in the DLQ. - -Failed workflows end up in the DLQ after exhausting all retry attempts. You can filter, -paginate, and inspect these failures to understand what went wrong and decide whether to -resume, restart, or delete them. - -# Restart Workflow from DLQ -Source: https://upstash.com/docs/workflow/api-reference/dlq/restart-workflow-from-dlq - -/workflow/openapi.yaml post /v2/workflows/dlq/restart/{dlqId} -Restart a failed workflow run from the DLQ. The workflow will start from the beginning. - -Unlike resume, which continues from where the workflow failed, restart executes the entire workflow -from the first step. A new workflow run ID is generated and all steps will be executed again. - -# Resume Workflow from DLQ -Source: https://upstash.com/docs/workflow/api-reference/dlq/resume-workflow-from-dlq - -/workflow/openapi.yaml post /v2/workflows/dlq/resume/{dlqId} - -# Retry Failure Callback -Source: https://upstash.com/docs/workflow/api-reference/dlq/retry-failure-callback - -/workflow/openapi.yaml post /v2/workflows/dlq/callback/{dlqId} -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. - -# Get Flow Control Key -Source: https://upstash.com/docs/workflow/api-reference/flow-control/get-flow-control-key - -/workflow/openapi.yaml get /v2/flowControl/{flowControlKey} -Get details of a specific Flow Control key - -# Get Flow Control Key -Source: https://upstash.com/docs/workflow/api-reference/flow-control/get-flow-control-key-1 - -/workflow/openapi.yaml get /v2/keys/rotate -Get details of a specific Flow Control key. - -Flow Control keys are used to manage concurrency and rate limiting for workflow steps. -This endpoint returns the current waitlist size for the specified flow control key, -which indicates how many workflow steps are currently waiting due to flow control constraints. - -# Get Global Parallelism -Source: https://upstash.com/docs/workflow/api-reference/flow-control/get-global-parallelism +# Multiple IDs +Source: https://upstash.com/docs/workflow/api-reference/dlq/delete/delete-list-of-ids -/workflow/openapi.yaml get /v2/globalParallelism -Returns the current global parallelism usage across all flow control keys +Pass one or more `dlqIds` to delete only those DLQ entries. -# List Flow Control Keys -Source: https://upstash.com/docs/workflow/api-reference/flow-control/list-flow-control-keys +## Query parameters -/workflow/openapi.yaml get /v2/flowControl -List all Flow Control keys - -# Pause Flow Control Key -Source: https://upstash.com/docs/workflow/api-reference/flow-control/pause-flow-control-key - -/workflow/openapi.yaml post /v2/flowControl/{flowControlKey}/pause -Pauses the delivery of messages associated with a specific flow-control key. - -# Pin Configuration for Flow Control Key -Source: https://upstash.com/docs/workflow/api-reference/flow-control/pin-configuration-for-flow-control-key - -/workflow/openapi.yaml post /v2/flowControl/{flowControlKey}/pin -Pins a processing configuration for a specific flow-control key. - -# Reset Rate for Flow Control Key -Source: https://upstash.com/docs/workflow/api-reference/flow-control/reset-rate-for-flow-control-key + + DLQ IDs to delete. Repeat the parameter (`dlqIds=id1&dlqIds=id2`) or pass comma-separated values. + -/workflow/openapi.yaml post /v2/flowControl/{flowControlKey}/resetRate -Resets the rate configuration state for a specific flow-control key. +## Response -# Resume Flow Control Key -Source: https://upstash.com/docs/workflow/api-reference/flow-control/resume-flow-control-key +Number of DLQ entries deleted. -/workflow/openapi.yaml post /v2/flowControl/{flowControlKey}/resume -Resumes the delivery of messages associated with a specific flow-control key. + -# Unpin Configuration for Flow Control Key -Source: https://upstash.com/docs/workflow/api-reference/flow-control/unpin-configuration-for-flow-control-key +```sh curl +curl -X DELETE 'https://qstash-eu-central-1.upstash.io/v2/workflows/dlq?dlqIds=&dlqIds=' \ + -H 'Authorization: Bearer ' +``` -/workflow/openapi.yaml post /v2/flowControl/{flowControlKey}/unpin -Removes the pinned configuration for a specific flow-control key. + -# List Workflow Run Logs -Source: https://upstash.com/docs/workflow/api-reference/logs/list-workflow-run-logs + -/workflow/openapi.yaml get /v2/workflows/logs +```json 200 OK +{ + "deleted": 2 +} +``` -# List Waiters -Source: https://upstash.com/docs/workflow/api-reference/notify/list-waiters + -/workflow/openapi.yaml get /v2/waiters/{eventId} -List all active waiters for a specific event ID. +# Multiple IDs +Source: https://upstash.com/docs/workflow/api-reference/dlq/restart/restart-list-of-ids -Returns information about all workflow runs that are currently waiting for the specified event. +Pass one or more `dlqIds` to restart those failed workflow runs from their first steps. -# Notify Event -Source: https://upstash.com/docs/workflow/api-reference/notify/notify-event +## Query parameters -/workflow/openapi.yaml post /v2/notify/{eventId} -Notify an event to all waiters listening for that event ID. + + DLQ IDs to restart. Repeat the parameter (`dlqIds=id1&dlqIds=id2`) or pass comma-separated values. + -This endpoint broadcasts an event to all active waiters that are waiting for the specified event. -Each waiting workflow step receives the event data and continues execution. +## Response -**Important:** This is an "unsafe notify" operation - if there are no active waiters when the -notification is sent, the event is lost and will not be delivered later. For guaranteed delivery -within a specific workflow run, use the `/v2/notify/{workflowRunId}/{eventId}` endpoint instead. +Results for the restarted entries. Each includes a new `workflowRunId` and `workflowCreatedAt` in Unix milliseconds. Entries excluded by supplied filters are absent. +Empty; this request does not paginate. -# Notify Workflow Run Event -Source: https://upstash.com/docs/workflow/api-reference/notify/notify-workflow-run-event + -/workflow/openapi.yaml post /v2/notify/{workflowRunId}/{eventId} -Notify an event to a specific workflow run's waiters. +```sh curl +curl -X POST 'https://qstash-eu-central-1.upstash.io/v2/workflows/dlq/restart?dlqIds=&dlqIds=' \ + -H 'Authorization: Bearer ' +``` -This endpoint sends an event notification to waiters within a specific workflow run. -Unlike the general notify endpoint, this uses a "safe notify" mechanism that guarantees -delivery even if no waiter is currently active. + -**Safe Notify Behavior:** -- If a waiter is currently active, it receives the notification immediately -- If no waiter is active, the notification is saved in the database -- When a waiter becomes active later, it will consume the saved notification -- This ensures events are never lost due to timing issues + -# Batch Trigger Workflow Runs -Source: https://upstash.com/docs/workflow/api-reference/runs/batch-trigger-workflow-runs +```json 200 OK +{ + "workflowRuns": [ + { "workflowRunId": "", "workflowCreatedAt": 1720000000000 }, + { "workflowRunId": "", "workflowCreatedAt": 1720000000000 } + ], + "cursor": "" +} +``` -/workflow/openapi.yaml post /v2/batch/trigger -Start multiple workflow runs in a single request. + -# Bulk Cancel Workflow Runs -Source: https://upstash.com/docs/workflow/api-reference/runs/bulk-cancel-workflow-runs +# Multiple IDs +Source: https://upstash.com/docs/workflow/api-reference/dlq/resume/resume-list-of-ids -/workflow/openapi.yaml delete /v2/workflows/runs -Cancel all matching workflow runs. +Pass one or more `dlqIds` to resume those failed workflow runs from their failed steps. -# Cancel Workflow Run -Source: https://upstash.com/docs/workflow/api-reference/runs/cancel-workflow-run +## Query parameters -/workflow/openapi.yaml delete /v2/workflows/runs/{workflowRunId} -Cancel an ongoing workflow run. + + DLQ IDs to resume. Repeat the parameter (`dlqIds=id1&dlqIds=id2`) or pass comma-separated values. + -# Retry a Step Now -Source: https://upstash.com/docs/workflow/api-reference/runs/retry-a-step-now +## Response -/workflow/openapi.yaml post /v2/messages/{messageId}/retry -Execute a workflow step that is waiting for its next retry immediately +Results for the resumed entries. Each includes a new `workflowRunId` and `workflowCreatedAt` in Unix milliseconds. Entries excluded by supplied filters are absent. +Empty; this request does not paginate. -# Trigger Workflow Run -Source: https://upstash.com/docs/workflow/api-reference/runs/trigger-workflow-run + -/workflow/openapi.yaml post /v2/trigger/{workflowUrl} -Start a new workflow run. +```sh curl +curl -X POST 'https://qstash-eu-central-1.upstash.io/v2/workflows/dlq/resume?dlqIds=&dlqIds=' \ + -H 'Authorization: Bearer ' +``` -# Get Signing Keys -Source: https://upstash.com/docs/workflow/api-reference/signing-keys/get-signing-keys + -/workflow/openapi.yaml get /v2/keys -Retrieve your current and next signing keys + -# Rotate Signing Keys -Source: https://upstash.com/docs/workflow/api-reference/signing-keys/rotate-signing-keys +```json 200 OK +{ + "workflowRuns": [ + { "workflowRunId": "", "workflowCreatedAt": 1720000000000 }, + { "workflowRunId": "", "workflowCreatedAt": 1720000000000 } + ], + "cursor": "" +} +``` -/workflow/openapi.yaml post /v2/keys/rotate -Rotate your signing keys + # Caveats Source: https://upstash.com/docs/workflow/basics/caveats @@ -112730,7 +112409,9 @@ Once a workflow run is in the DLQ, you can take the following actions: * **[Re-run Failure Function](/docs/workflow/features/dlq/callback)** – execute the workflow's failure handling logic again. * **[Delete](/docs/workflow/features/dlq/delete)** – remove the DLQ entry if no action is required. -You can apply these actions in bulk to multiple DLQ entries. Check the individual action pages for more details. +You can apply these actions in bulk to multiple DLQ entries. For all matching runs in a bulk action, use the dedicated [Delete Async Bulk](/docs/workflow/api-reference/dlq/delete/delete-bulk-action), [Resume Async Bulk](/docs/workflow/api-reference/dlq/resume/resume-bulk-action), or [Restart Async Bulk](/docs/workflow/api-reference/dlq/restart/restart-bulk-action) `POST` endpoint. Each returns an action ID you can use to [check progress](/docs/workflow/api-reference/bulk-actions/get-a-bulk-action). + +For specific entries, use [Delete Multiple IDs](/docs/workflow/api-reference/dlq/delete/delete-list-of-ids), [Resume Multiple IDs](/docs/workflow/api-reference/dlq/resume/resume-list-of-ids), or [Restart Multiple IDs](/docs/workflow/api-reference/dlq/restart/restart-list-of-ids). # Rerun Failure Function Source: https://upstash.com/docs/workflow/features/dlq/callback @@ -114490,11 +114171,11 @@ If you don't want to verify the signature, you can remove `QSTASH_CURRENT_SIGNIN When a workflow run fails and is moved to the Dead Letter Queue (DLQ), you have several options to handle it manually via the REST API: -### [Resume](/docs/workflow/api-reference/dlq/resume-workflow-from-dlq) +### [Resume](/docs/workflow/api-reference/dlq/resume/resume-single-id) * **What it does:** Continues a failed workflow run from exactly where it failed, preserving all successful step results. * **When to use:** Use this if you want to retry only the failed/pending steps without re-executing the entire workflow. -### [Restart](/docs/workflow/api-reference/dlq/restart-workflow-from-dlq) +### [Restart](/docs/workflow/api-reference/dlq/restart/restart-single-id) * **What it does:** Starts the failed workflow run over from the beginning, discarding all previous step results. * **When to use:** Use this if you want a clean execution, or if the failure may have been caused by a corrupted state that requires a fresh start. diff --git a/llms.txt b/llms.txt index 445da8970..fd04c1b05 100644 --- a/llms.txt +++ b/llms.txt @@ -190,49 +190,8 @@ Search these docs: GET https://upstash.com/docs/search?q= returns JSON { - [upstash_redis_database](https://upstash.com/docs/devops/terraform/resources/upstash_redis_database.md): Create and manage Upstash Redis databases. - [upstash_team](https://upstash.com/docs/devops/terraform/resources/upstash_team.md): Create and manage teams on Upstash. - [Overview](https://upstash.com/docs/introduction.md): Serverless data and messaging for developers: Redis, Vector, QStash, Workflow, Search, Box, and Blob, with SDKs, integrations, and a full-featured console. -- [Get a Bulk Action](https://upstash.com/docs/qstash/api-reference/bulk-actions/get-a-bulk-action.md): Retrieve the details and progress of a bulk action -- [List Bulk Actions](https://upstash.com/docs/qstash/api-reference/bulk-actions/list-bulk-actions.md): List the bulk actions created by filter-based message cancels -- [Bulk Delete DLQ messages](https://upstash.com/docs/qstash/api-reference/dlq/bulk-delete-dlq-messages.md): Delete multiple messages from the DLQ -- [Bulk Retry DLQ messages](https://upstash.com/docs/qstash/api-reference/dlq/bulk-retry-dlq-messages.md): Retry delivery of multiple messages from the DLQ -- [Delete a DLQ message](https://upstash.com/docs/qstash/api-reference/dlq/delete-a-dlq-message.md): Manually remove a message from the DLQ -- [Get a DLQ message](https://upstash.com/docs/qstash/api-reference/dlq/get-a-dlq-message.md): Get a specific message from the DLQ -- [List DLQ messages](https://upstash.com/docs/qstash/api-reference/dlq/list-dlq-messages.md): List and paginate through all messages currently in the DLQ -- [Retry a DLQ message](https://upstash.com/docs/qstash/api-reference/dlq/retry-a-dlq-message.md): Retry delivery of a message from the DLQ -- [Get Flow Control Key](https://upstash.com/docs/qstash/api-reference/flow-control/get-flow-control-key.md): Get details of a specific Flow Control key -- [Get Global Parallelism](https://upstash.com/docs/qstash/api-reference/flow-control/get-global-parallelism.md): Returns the current global parallelism usage across all flow control keys -- [List Flow Control Keys](https://upstash.com/docs/qstash/api-reference/flow-control/list-flow-control-keys.md): List all Flow Control keys -- [Pause Flow Control Key](https://upstash.com/docs/qstash/api-reference/flow-control/pause-flow-control-key.md): Pauses the delivery of messages associated with a specific flow-control key. -- [Pin Configuration for Flow Control Key](https://upstash.com/docs/qstash/api-reference/flow-control/pin-configuration-for-flow-control-key.md): Pins a processing configuration for a specific flow-control key. -- [Reset Rate for Flow Control Key](https://upstash.com/docs/qstash/api-reference/flow-control/reset-rate-for-flow-control-key.md): Resets the rate configuration state for a specific flow-control key. -- [Resume Flow Control Key](https://upstash.com/docs/qstash/api-reference/flow-control/resume-flow-control-key.md): Resumes the delivery of messages associated with a specific flow-control key. -- [Unpin Configuration for Flow Control Key](https://upstash.com/docs/qstash/api-reference/flow-control/unpin-configuration-for-flow-control-key.md): Removes the pinned configuration for a specific flow-control key. -- [List Logs](https://upstash.com/docs/qstash/api-reference/logs/list-logs.md): Paginate through logs of published messages -- [Batch Messages](https://upstash.com/docs/qstash/api-reference/messages/batch-messages.md): Send multiple messages in a single request -- [Bulk Cancel Messages](https://upstash.com/docs/qstash/api-reference/messages/bulk-cancel-messages.md): Delete all pending messages -- [Cancel a Message](https://upstash.com/docs/qstash/api-reference/messages/cancel-a-message.md): Cancel a pending message -- [Enqueue a Message](https://upstash.com/docs/qstash/api-reference/messages/enqueue-a-message.md): Enqueue a message to the specified queue -- [Get a Message](https://upstash.com/docs/qstash/api-reference/messages/get-a-message.md): Retrieve details of a specific message -- [Publish a Message](https://upstash.com/docs/qstash/api-reference/messages/publish-a-message.md): Publish a message to the specified destination -- [Retry a Message Now](https://upstash.com/docs/qstash/api-reference/messages/retry-a-message-now.md): Deliver a delayed message, or a message waiting for its next retry, immediately -- [Delete a queue](https://upstash.com/docs/qstash/api-reference/queues/delete-a-queue.md): Deletes a queue -- [Get a Queue](https://upstash.com/docs/qstash/api-reference/queues/get-a-queue.md): Get details of a specific queue -- [List Queues](https://upstash.com/docs/qstash/api-reference/queues/list-queues.md): List all your queues -- [Pause Queue](https://upstash.com/docs/qstash/api-reference/queues/pause-queue.md): Pause a queue to stop the delivery of enqueued messages -- [Resume Queue](https://upstash.com/docs/qstash/api-reference/queues/resume-queue.md): Resumes a queue to starts the delivery of enqueued messages -- [Upsert a Queue](https://upstash.com/docs/qstash/api-reference/queues/upsert-a-queue.md): Updates or creates a queue -- [Create a Schedule](https://upstash.com/docs/qstash/api-reference/schedules/create-a-schedule.md): Create a schedule to send messages periodically -- [Delete a Schedule](https://upstash.com/docs/qstash/api-reference/schedules/delete-a-schedule.md): Delete a schedule -- [Get a Schedule](https://upstash.com/docs/qstash/api-reference/schedules/get-a-schedule.md): Get details of a specific schedule -- [List schedules](https://upstash.com/docs/qstash/api-reference/schedules/list-schedules.md): List all schedules -- [Pause a Schedule](https://upstash.com/docs/qstash/api-reference/schedules/pause-a-schedule.md): Pause a Schedule -- [Resume a Schedule](https://upstash.com/docs/qstash/api-reference/schedules/resume-a-schedule.md): Resume a paused Schedule -- [Get Signing Keys](https://upstash.com/docs/qstash/api-reference/signing-keys/get-signing-keys.md): Retrieve your current and next signing keys -- [Rotate Signing Keys](https://upstash.com/docs/qstash/api-reference/signing-keys/rotate-signing-keys.md): Rotate your signing keys -- [Delete a URL Group](https://upstash.com/docs/qstash/api-reference/url-groups/delete-a-url-group.md): Delete a topic and all its endpoints -- [Get a URL Group](https://upstash.com/docs/qstash/api-reference/url-groups/get-a-url-group.md): Retrieve details of a specific URL Group -- [List URL Groups](https://upstash.com/docs/qstash/api-reference/url-groups/list-url-groups.md): List all your URL Groups -- [Remove Endpoints](https://upstash.com/docs/qstash/api-reference/url-groups/remove-endpoints.md): Remove one or more endpoints from a URL Group -- [Upsert URL Group and Endpoint](https://upstash.com/docs/qstash/api-reference/url-groups/upsert-url-group-and-endpoint.md): Add an endpoint to a URL Group +- [Multiple IDs](https://upstash.com/docs/qstash/api-reference/dlq/delete/delete-list-of-ids.md): Delete specific QStash DLQ messages by their DLQ IDs. +- [Multiple IDs](https://upstash.com/docs/qstash/api-reference/dlq/retry/retry-list-of-ids.md): Retry specific QStash DLQ messages by their DLQ IDs. - [API Rate Limit Response](https://upstash.com/docs/qstash/api/api-ratelimiting.md): This page documents the rate limiting behavior of our API and explains how to handle different types of rate limit errors. - [Authentication](https://upstash.com/docs/qstash/api/authentication.md): Authentication for the QStash API - [At-Least-Once Delivery](https://upstash.com/docs/qstash/features/at-least-once.md) @@ -1381,38 +1340,9 @@ Search these docs: GET https://upstash.com/docs/search?q= returns JSON { - [Orchestrator-Workers](https://upstash.com/docs/workflow/agents/patterns/orchestrator-workers.md) - [Parallelization](https://upstash.com/docs/workflow/agents/patterns/parallelization.md) - [Prompt Chaining](https://upstash.com/docs/workflow/agents/patterns/prompt-chaining.md) -- [Get a Bulk Action](https://upstash.com/docs/workflow/api-reference/bulk-actions/get-a-bulk-action.md): Retrieve the details and progress of a bulk action -- [List Bulk Actions](https://upstash.com/docs/workflow/api-reference/bulk-actions/list-bulk-actions.md): List the bulk actions created by filter-based workflow run cancels -- [Bulk Delete Failed Workflow Runs](https://upstash.com/docs/workflow/api-reference/dlq/bulk-delete-failed-workflow-runs.md): Delete multiple failed workflow runs from the DLQ. -- [Bulk Restart Workflows from DLQ](https://upstash.com/docs/workflow/api-reference/dlq/bulk-restart-workflows-from-dlq.md): Restart multiple failed workflow runs from the DLQ. Each workflow will start from the beginning. -- [Bulk Resume Workflows from DLQ](https://upstash.com/docs/workflow/api-reference/dlq/bulk-resume-workflows-from-dlq.md): When a workflow run fails, it's automatically moved to the DLQ (Dead Letter Queue) where it can be analyzed and resumed. The resume feature allows you to continue a failed workflow run from exactly where it failed, without re-executing successfully completed steps. -- [Cancel In-Progress Failure Callback](https://upstash.com/docs/workflow/api-reference/dlq/cancel-in-progress-failure-callback.md): Cancel an in-progress failure callback for a failed workflow. -- [Delete Failed Workflow Run](https://upstash.com/docs/workflow/api-reference/dlq/delete-failed-workflow-run.md): Delete a specific failed workflow run from the DLQ. -- [Get Failed Workflow Run](https://upstash.com/docs/workflow/api-reference/dlq/get-failed-workflow-run.md): Get details of a specific failed workflow run from the DLQ. -- [List Failed Workflow Runs](https://upstash.com/docs/workflow/api-reference/dlq/list-failed-workflow-runs.md): List and paginate through all failed workflow runs currently in the DLQ. -- [Restart Workflow from DLQ](https://upstash.com/docs/workflow/api-reference/dlq/restart-workflow-from-dlq.md): Restart a failed workflow run from the DLQ. The workflow will start from the beginning. -- [Resume Workflow from DLQ](https://upstash.com/docs/workflow/api-reference/dlq/resume-workflow-from-dlq.md) -- [Retry Failure Callback](https://upstash.com/docs/workflow/api-reference/dlq/retry-failure-callback.md): 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. -- [Get Flow Control Key](https://upstash.com/docs/workflow/api-reference/flow-control/get-flow-control-key.md): Get details of a specific Flow Control key -- [Get Flow Control Key](https://upstash.com/docs/workflow/api-reference/flow-control/get-flow-control-key-1.md): Get details of a specific Flow Control key. -- [Get Global Parallelism](https://upstash.com/docs/workflow/api-reference/flow-control/get-global-parallelism.md): Returns the current global parallelism usage across all flow control keys -- [List Flow Control Keys](https://upstash.com/docs/workflow/api-reference/flow-control/list-flow-control-keys.md): List all Flow Control keys -- [Pause Flow Control Key](https://upstash.com/docs/workflow/api-reference/flow-control/pause-flow-control-key.md): Pauses the delivery of messages associated with a specific flow-control key. -- [Pin Configuration for Flow Control Key](https://upstash.com/docs/workflow/api-reference/flow-control/pin-configuration-for-flow-control-key.md): Pins a processing configuration for a specific flow-control key. -- [Reset Rate for Flow Control Key](https://upstash.com/docs/workflow/api-reference/flow-control/reset-rate-for-flow-control-key.md): Resets the rate configuration state for a specific flow-control key. -- [Resume Flow Control Key](https://upstash.com/docs/workflow/api-reference/flow-control/resume-flow-control-key.md): Resumes the delivery of messages associated with a specific flow-control key. -- [Unpin Configuration for Flow Control Key](https://upstash.com/docs/workflow/api-reference/flow-control/unpin-configuration-for-flow-control-key.md): Removes the pinned configuration for a specific flow-control key. -- [List Workflow Run Logs](https://upstash.com/docs/workflow/api-reference/logs/list-workflow-run-logs.md) -- [List Waiters](https://upstash.com/docs/workflow/api-reference/notify/list-waiters.md): List all active waiters for a specific event ID. -- [Notify Event](https://upstash.com/docs/workflow/api-reference/notify/notify-event.md): Notify an event to all waiters listening for that event ID. -- [Notify Workflow Run Event](https://upstash.com/docs/workflow/api-reference/notify/notify-workflow-run-event.md): Notify an event to a specific workflow run's waiters. -- [Batch Trigger Workflow Runs](https://upstash.com/docs/workflow/api-reference/runs/batch-trigger-workflow-runs.md): Start multiple workflow runs in a single request. -- [Bulk Cancel Workflow Runs](https://upstash.com/docs/workflow/api-reference/runs/bulk-cancel-workflow-runs.md): Cancel all matching workflow runs. -- [Cancel Workflow Run](https://upstash.com/docs/workflow/api-reference/runs/cancel-workflow-run.md): Cancel an ongoing workflow run. -- [Retry a Step Now](https://upstash.com/docs/workflow/api-reference/runs/retry-a-step-now.md): Execute a workflow step that is waiting for its next retry immediately -- [Trigger Workflow Run](https://upstash.com/docs/workflow/api-reference/runs/trigger-workflow-run.md): Start a new workflow run. -- [Get Signing Keys](https://upstash.com/docs/workflow/api-reference/signing-keys/get-signing-keys.md): Retrieve your current and next signing keys -- [Rotate Signing Keys](https://upstash.com/docs/workflow/api-reference/signing-keys/rotate-signing-keys.md): Rotate your signing keys +- [Multiple IDs](https://upstash.com/docs/workflow/api-reference/dlq/delete/delete-list-of-ids.md): Delete specific failed Workflow runs by their DLQ IDs. +- [Multiple IDs](https://upstash.com/docs/workflow/api-reference/dlq/restart/restart-list-of-ids.md): Restart specific failed Workflow runs by their DLQ IDs. +- [Multiple IDs](https://upstash.com/docs/workflow/api-reference/dlq/resume/resume-list-of-ids.md): Resume specific failed Workflow runs by their DLQ IDs. - [Caveats](https://upstash.com/docs/workflow/basics/caveats.md) - [Overview](https://upstash.com/docs/workflow/basics/client.md) - [client.cancel](https://upstash.com/docs/workflow/basics/client/cancel.md) @@ -1519,7 +1449,3 @@ Search these docs: GET https://upstash.com/docs/search?q= returns JSON { - [context.waitForWebhook](https://upstash.com/docs/workflow/steps/waitForWebhook.md) - [General](https://upstash.com/docs/workflow/troubleshooting/general.md) - [Vercel](https://upstash.com/docs/workflow/troubleshooting/vercel.md) - -## OpenAPI Specs - -- [openapi](https://upstash.com/docs/workflow/openapi.yaml) diff --git a/qstash/api-reference/dlq/retry/retry-list-of-ids.mdx b/qstash/api-reference/dlq/retry/retry-list-of-ids.mdx index c70c777c2..e51663ff8 100644 --- a/qstash/api-reference/dlq/retry/retry-list-of-ids.mdx +++ b/qstash/api-reference/dlq/retry/retry-list-of-ids.mdx @@ -10,7 +10,7 @@ Pass one or more `dlqIds` to retry only those DLQ entries. A new message is created for each entry with the original body and headers, then the original entry is removed from the DLQ. -## Query parameters +## Request DLQ IDs to retry. Repeat the parameter (`dlqIds=id1&dlqIds=id2`) or pass comma-separated values. diff --git a/qstash/overall/changelog.mdx b/qstash/overall/changelog.mdx index b9bd7ce7a..d852d6cf4 100644 --- a/qstash/overall/changelog.mdx +++ b/qstash/overall/changelog.mdx @@ -180,7 +180,7 @@ title: Changelog -- [Retry-After](/qstash/features/retry#retry-after-header) support for rate-limited endpoints +- [Retry-After](/qstash/features/retry#retry-after-headers) support for rate-limited endpoints - [Upstash-Timeout](/qstash/api-reference/messages/publish-a-message) header diff --git a/workflow/api-reference/dlq/delete/delete-list-of-ids.mdx b/workflow/api-reference/dlq/delete/delete-list-of-ids.mdx index 0330561f0..edd8f15c1 100644 --- a/workflow/api-reference/dlq/delete/delete-list-of-ids.mdx +++ b/workflow/api-reference/dlq/delete/delete-list-of-ids.mdx @@ -7,7 +7,7 @@ authMethod: "bearer" Pass one or more `dlqIds` to delete only those DLQ entries. -## Query parameters +## Request DLQ IDs to delete. Repeat the parameter (`dlqIds=id1&dlqIds=id2`) or pass comma-separated values. diff --git a/workflow/api-reference/dlq/restart/restart-list-of-ids.mdx b/workflow/api-reference/dlq/restart/restart-list-of-ids.mdx index a7757598b..bf664ca7f 100644 --- a/workflow/api-reference/dlq/restart/restart-list-of-ids.mdx +++ b/workflow/api-reference/dlq/restart/restart-list-of-ids.mdx @@ -7,7 +7,7 @@ authMethod: "bearer" Pass one or more `dlqIds` to restart those failed workflow runs from their first steps. -## Query parameters +## Request DLQ IDs to restart. Repeat the parameter (`dlqIds=id1&dlqIds=id2`) or pass comma-separated values. diff --git a/workflow/api-reference/dlq/resume/resume-list-of-ids.mdx b/workflow/api-reference/dlq/resume/resume-list-of-ids.mdx index 16d86a110..370c9ec7c 100644 --- a/workflow/api-reference/dlq/resume/resume-list-of-ids.mdx +++ b/workflow/api-reference/dlq/resume/resume-list-of-ids.mdx @@ -7,7 +7,7 @@ authMethod: "bearer" Pass one or more `dlqIds` to resume those failed workflow runs from their failed steps. -## Query parameters +## Request DLQ IDs to resume. Repeat the parameter (`dlqIds=id1&dlqIds=id2`) or pass comma-separated values.