Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions llms-full.txt
Original file line number Diff line number Diff line change
Expand Up @@ -88499,6 +88499,11 @@ tasks.define(
route throws on its first request instead of running anything unverified.
* When your handler throws, the task is not marked failed. Only the dispatcher marks it `failed`,
and only after QStash has stopped retrying. The failed message stays in the QStash DLQ.
* When your handler *returns* a tool error (`isError: true`), the task is `failed` at once, with no
retry, and `task_status` returns your content with `isError`, as the synchronous tool would.
* The model only sees a failure's `error.code` and `error.message`. The transport's details
(`error.data`: the QStash DLQ id, the Workflow run id) stay in Redis for you. What your handler
threw and a dispatch error are logged, never stored or returned.
* By default QStash tries 5 times with backoff `min(pow(3, retried) * 1000, 300000)`, about two
minutes in total, so a task survives a server restart. The free tier and the local dev server
allow at most 5 retries.
Expand Down Expand Up @@ -88913,6 +88918,11 @@ tasks.define(
route throws on its first request instead of running anything unverified.
* When your handler throws, the task is not marked failed. Only the dispatcher marks it `failed`,
and only after QStash has stopped retrying. The failed message stays in the QStash DLQ.
* When your handler *returns* a tool error (`isError: true`), the task is `failed` at once, with no
retry, and `task_status` returns your content with `isError`, as the synchronous tool would.
* The model only sees a failure's `error.code` and `error.message`. The transport's details
(`error.data`: the QStash DLQ id, the Workflow run id) stay in Redis for you. What your handler
threw and a dispatch error are logged, never stored or returned.
* By default QStash tries 5 times with backoff `min(pow(3, retried) * 1000, 300000)`, about two
minutes in total, so a task survives a server restart. The free tier and the local dev server
allow at most 5 retries.
Expand Down
5 changes: 5 additions & 0 deletions redis/sdks/agentkit/mcp-tasks.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,11 @@ tasks.define(
route throws on its first request instead of running anything unverified.
- When your handler throws, the task is not marked failed. Only the dispatcher marks it `failed`,
and only after QStash has stopped retrying. The failed message stays in the QStash DLQ.
- When your handler *returns* a tool error (`isError: true`), the task is `failed` at once, with no
retry, and `task_status` returns your content with `isError`, as the synchronous tool would.
- The model only sees a failure's `error.code` and `error.message`. The transport's details
(`error.data`: the QStash DLQ id, the Workflow run id) stay in Redis for you. What your handler
threw and a dispatch error are logged, never stored or returned.
- By default QStash tries 5 times with backoff `min(pow(3, retried) * 1000, 300000)`, about two
minutes in total, so a task survives a server restart. The free tier and the local dev server
allow at most 5 retries.
Expand Down