> ## Documentation Index
> Fetch the complete documentation index at: https://upstash.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

<Note>
  We have moved the roadmap and the changelog to [Github Discussions](https://github.com/orgs/upstash/discussions) starting from October 2025.Now you can follow `In Progress` features. You can see that your `Feature Requests` are recorded. You can vote for them and comment your specific use-cases to shape the feature to your needs.
</Note>

<Update label="March 2026">
  * **TypeScript SDK (`workflow-js`):**
    * Added optional `workflowRunId` parameter to `notify` method, enabling **lookback functionality**. When provided, notifications are stored and delivered even if sent before a workflow reaches `waitForEvent`, preventing race conditions. See [notify documentation](/workflow/basics/client/notify) and [wait-for-event guide](/workflow/features/wait-for-event#race-condition-between-wait-and-notify) for details.
</Update>

<Update label="September 2025">
  * **TypeScript SDK (`workflow-js`):**
    * `Label` feature is added. This will enable our users to label their workflow runs so that
      * Logs can be filtered with user given label.
      * DLQ can be filtered with user given label.
    * `notBefore` parameter is added to `trigger` function that will allow starting a workflow run at a later date
      given by the `notBefore` parameter.
  * **Console:**
    * A major Workflow redesign is landed to improve debugging and monitoring experience workflow runs logs.
      * `Flat view` is removed. All the data is moved to single view. This is also to avoid confusing our
        users and made over all experience simpler.
</Update>

<Update label="August 2025">
  * **TypeScript SDK (`workflow-js`):**
    * Added `retryDelay` option to dynamicaly program the retry duration. It can be configured on
      [trigger](/workflow/basics/client#trigger-workflow) , [context.call](/workflow/basics/context#context-call)
      or [serve](/workflow/basics/serve#retrydelay)
    * Added ability to detect if a given url is a workflow or not. Starting with `0.2.17` trigger made via the sdk can fail (instead of hanging),
      if there is no workflow serve on the given url.
  * **Console:**
    * Local mode is added to enable our users to use the console with their local development envrionment and the locally deployed workflows.
      See [docs](/workflow/howto/local-development#development-server-recommended) for details.
</Update>

<Update label="July 2025">
  * **TypeScript SDK (`workflow-js`):**
    * Restart/Resume for DLQ is added to allow more options to handle failed runs. See [here](/workflow/howto/failures#manually-handling-failed-workflow-runs)
    * Added `WorkflowNonRetryableError` to fail a workflow without causing any retries. See [here](/workflow/basics/context#error-handling-and-retries)
    * For additional bug fixes, see the full changelog [here](https://github.com/upstash/workflow-js/compare/v0.2.14...v0.2.16).
</Update>

<Update label="June 2025">
  * **TypeScript SDK (`workflow-js`):**
    * Added `useFailureFunction` and `failureFunction` to `client.trigger`. See [here](https://github.com/upstash/workflow-js/pull/107).
    * Added batch triggering support to `client.trigger`. See [here](https://github.com/upstash/workflow-js/pull/110).
    * For additional bug fixes, see the release notes [here](https://github.com/upstash/workflow-js/releases/tag/v0.2.14).
  * **Python SDK (`workflow-py`):**  
    * Failure function is implemented. This feature enables to act on a failure of a workflow on the code. See docs [here](/workflow/howto/failures#using-a-failurefunction-recommended)
    * For other bug fixes, see the full changelog [here](https://github.com/upstash/workflow-py/compare/v0.1.0...v0.1.1).
  * **Console:**
    * A major redesign is coming next month to improve Workflow usability.
  * **Workflow Server:**  
    * An issue causing Workflows not usable with `CloudFront` is fixed.
</Update>

<Update label="May 2025">
  * **TypeScript SDK (`workflow-js`):**
    * Added a `workflow` parameter to `context.call`, enabling type-safe workflow calls. See [here](https://github.com/upstash/workflow-js/pull/75).
    * Enabled passing `context.call` settings when defining an Agent. See [here](https://github.com/upstash/workflow-js/pull/90).
    * Added `delay` support to `client.trigger`. See [here](https://github.com/upstash/workflow-js/pull/100).
    * Introduced `period` and improved `rate` support in flow control. See [here](https://github.com/upstash/workflow-js/pull/101).\
      Previously, `period` was fixed at 1 second. For example, `rate: 3 period: 1d` throttles publishes to 3 per day.
    * For additional bug fixes, see the release notes [here](https://github.com/upstash/workflow-js/releases/tag/v0.2.13).
  * **Workflow Server:**
    * Added support for custom `period` in flow control, allowing users to set a period of up to 1 week.\
      Previously, `period` was fixed at 1 second. For example, `rate: 3 period: 1d` throttles publishes to 3 per day.
    * Implemented **Workflow Resume** and **Restart** features (SDK and Console support in progress):
      * **Resume** allows users to retry a workflow run from the point it stopped.
      * **Restart** allows users to retry a workflow run from the beginning.
  * **Console:**
    * A major redesign is coming to improve Workflow usability.
</Update>

<Update label="April 2025">
  * **Python SDK (`workflow-py`):**  
    * Minor bug fixes.\
      See the full changelog [here](https://github.com/upstash/workflow-py/compare/v0.1.0...v0.1.1).
  * **Workflow Server:**
    * Prevented intermediate Workflow calls from failing due to request/message quota limits.
    * Fixed handling of `RUN_STARTED` so that it correctly returns unfinished Workflow Runs as documented.\
      Previously, some Workflow Runs could be skipped if internal state was logged after `RUN_STARTED`.
    * Applied several performance optimizations.
</Update>

<Update label="March 2025">
  * **TypeScript SDK (`workflow-js`):**
    * Added `onError` support to `serve` by the community. See [here](https://github.com/upstash/workflow-js/pull/79).
    * Enabled support for all fetch-compatible models in Agents. See [more details here](https://github.com/upstash/workflow-js/pull/77).
    * For additional bug fixes, see the full changelog [here](https://github.com/upstash/workflow-js/compare/v0.2.11...v0.2.12).
</Update>

<Update label="February 2025">
  * **TypeScript SDK (`workflow-js`):**
    * Fixed a Unicode issue in `context.call` where binary responses from endpoints could break. See [here](https://github.com/upstash/workflow-js/pull/71).
    * Introduced `WorkflowTool`, allowing Workflow Agents to define multi-step workflows as a tool. See [here](/workflow/agents/features#tools).
    * Added `context.invoke` to call one workflow from another with full type-safety. See the guide [here](/workflow/features/invoke).
    * Introduced flow control parameters to limit the rate or concurrency of workflow runs. Learn more [here](/workflow/features/flow-control).
    * For additional bug fixes, see the full changelog [here](https://github.com/upstash/workflow-js/compare/v0.2.3...v0.2.6).
  * **Workflow Server:**
    * Added RateLimit and Parallelism controls to manage the frequency and concurrency of workflow runs. Learn more [here](/workflow/features/flow-control).
</Update>

<Update label="January 2025">
  * **TypeScript SDK (`workflow-js`):**
    * Added the Agents API to workflows. You can now create AI agents to run workflows on your own infrastructure with all the benefits of workflows: reduced environment costs, fault tolerance, and scalability. Learn more about agents [here](/workflow/agents/overview).
    * For other bug fixes, see the full changelog [here](https://github.com/upstash/workflow-js/compare/v0.2.3...v0.2.6).
  * **Python SDK (workflow-py):**
    * Released [`workflow-py`](https://github.com/upstash/workflow-py).
  * **Local Development Server:**
    * The local development server is now available for public use. This server allows you to test your workflows locally. Learn more about the local development server [here](/workflow/howto/local-development#development-server-recommended).
  * **Console:**
    * Separated Workflow and QStash consoles for a better user experience.
    * Separated their DLQ messages as well.
  * **Workflow Server:**
    * The core team focused on RateLimit and Parallelism features. These features are ready on the server and will be announced next month after the documentation and SDKs are completed.
</Update>

<Update label="December 2024">
  * **TypeScript SDK (`workflow-js`):**
    * Introduced third-party integrations, starting with Anthropic, Resend, and OpenAI. These integrations are automatically offloaded to workflows, ensuring long-running calls do not consume user environment time. See the related documentation [here](/workflow/basics/context#context-api).
    * Added a `timeout` parameter to `context.call`. Learn more in the [documentation](/workflow/basics/context#context-call).
    * Improved support for workflows in Express and SvelteKit by adding the `useJSONContent` option.
    * Resolved loop detection issues on Cloudflare and Render.
    * Full changelog, including all fixes, is available [here](https://github.com/upstash/workflow-js/compare/v0.2.0...v0.2.3).

  * **Workflow Server:**
    * Added the `WorkflowCreatedAt` filter for Dead Letter Queue (DLQ) and Events.
    * Prepared the local development server for public release (coming soon).
    * Enhanced `context.SleepUntil` to support float values.
    * Increased the event retention period from 10,000 events to up to 14 days. Learn more on the [Pricing page](https://upstash.com/pricing/workflow).
</Update>

<Update label="November 2024">
  * **Python SDK (workflow-py):**
    * Began development of the Python SDK.
  * **TypeScript SDK (workflow-js):**
    * Added support for string durations (e.g., `1d`, `30s`) in `context.sleep` and `context.waitForEvent`.
    * Introduced integrations for [Astro](/workflow/quickstarts/astro) and [Express](/workflow/quickstarts/express).
    * Added `client.trigger`, enabling workflows to start and return the workflow run ID. See the [documentation](/workflow/basics/client#trigger-workflow).
    * Added a retry option for `context.call`. See the [documentation](/workflow/basics/context#context-call).
    * Introduced a lazy fetch feature to support longer and larger workflows on resource-limited platforms.
    * Added `context.cancel` to cancel the current workflow. See the [documentation](/workflow/basics/context#context-cancel).
    * Full changelog, including fixes, is available [here](https://github.com/upstash/workflow-js/compare/v0.1.2...v0.2.0).
  * **Workflow Server:**
    * Added bulk cancel functionality for workflow runs. See the [REST API](/workflow/api-reference/runs/bulk-cancel-workflow-runs).
    * Introduced content-based deduplication for workflows and retry-until-success functionality. This will allow workflows to be used in areas with unstable network connection.
</Update>

<Update label="October 2024">
  * Optimized the console by trimming event bodies, reducing resource usage and enabling efficient querying of events with large payloads.
  * Began development on a new architecture to deliver faster event processing on the server.
  * Added [Wait Notify](/workflow/features/wait-for-event) feature.
</Update>

<Update label="September 2024">
  * Bug fixes and internal logging improvements.
</Update>

<Update label="August 2024">
  * Released [Upstash Workflow](/workflow/getstarted).
</Update>
