Skip to content
  • Workflow SDK now supports inflight cancellation

    The Workflow SDK 5 beta now supports the standard AbortController and AbortSignal APIs across workflow and step boundaries.

    Create a controller inside a workflow, pass its signal into one or more steps, and cancel in-flight operations using the same API fetch already uses.

    import { sleep } from "workflow";
    export async function cancellableWorkflow() {
    "use workflow";
    const controller = new AbortController();
    const result = await Promise.race([
    fetchReport(controller.signal),
    sleep("30s").then(() => null),
    ]);
    if (result === null) {
    controller.abort();
    return { status: "timed-out" };
    }
    return result;
    }
    async function fetchReport(signal: AbortSignal) {
    "use step";
    const response = await fetch("https://api.example.com/report", {
    signal,
    });
    return response.json();
    }

    Passing a signal into a step and cancelling the in-flight operation

    That signal stays durable across suspensions and deterministic replay. When a step is running, it sees the cancellation, even when it's in a separate function invocation. Cancellation is also cooperative; steps have to inspect the signal or pass it to an API that supports AbortSignal.

    Use it to stop a slow step when a durable timeout wins a race, cancel the remaining requests after the first successful response, thread one signal through a multi-step pipeline, or cancel parallel work when an external condition changes.

    Try it with workflow@beta and read the cancellation documentation to learn more.

  • Workflow SDK now supports TanStack Start

    Workflow SDK now supports TanStack Start applications on Vercel.

    TanStack Start is built on Vite and Nitro, so the existing workflow/vite plugin works directly. Add it to vite.config.ts alongside tanstackStart().

    vite.config.ts
    import { tanstackStart } from "@tanstack/react-start/plugin/vite";
    import { defineConfig } from "vite";
    import { workflow } from "workflow/vite";
    export default defineConfig({
    plugins: [
    workflow(),
    tanstackStart(),
    ],
    });

    Adding the Workflow SDK plugin to a TanStack Start Vite config

    From there, write workflow and step functions in standard TypeScript with "use workflow" and "use step". They run as durable, resumable operations that survive restarts, sleep for days, and retry on failure, with compilation, queue configuration, and persistence handled by the plugin.

    Read the TanStack Start guide to learn more and create your first durable workflow.

    Pranay Prakash, Peter Wielander

  • Vercel Functions can now run up to 30 minutes

    Vercel Functions using the Node.js and Python runtimes now support execution durations up to 30 minutes for Pro and Enterprise teams, more than 2x the previous 800 second limit. Support for additional runtimes is coming soon.

    Use longer-running Functions for work that needs more time to finish, including:

    • Long LLM reasoning and tool calls

    • AI responses that stream for several minutes

    • Document and media processing

    • OCR and extraction

    • Web scraping and browser automation

    • Complex Workflow steps or Queue handlers

    Fluid Compute keeps long-running work cost-efficient. Active CPU billing only applies while your code is executing, and pauses while your Function is waiting on I/O such as AI model calls, database queries, and third-party APIs.

    Set maxDuration to opt in. For Next.js App Router, configure it in the route file:

    app/api/long-task/route.ts
    export const maxDuration = 1800; // 30 minutes
    export async function POST(request: Request) {
    return Response.json({ ok: true });
    }

    For other runtimes and frameworks, configure maxDuration for a specific function path in vercel.json:

    vercel.json
    {
    "$schema": "https://openapi.vercel.sh/vercel.json",
    "functions": {
    "api/long-task.py": {
    "maxDuration": 1800
    }
    }
    }

    Durations above 800 seconds are in beta and require Fluid Compute. Learn more about configuring max duration for Vercel Functions in the documentation.

    +2

    Florentin E, Craig A, Casey G, Tiago V

  • Auth0 joins the Vercel Marketplace

    You can now add Auth0, a production-ready authentication to your Vercel app in just a few clicks. 

    Built for modern frameworks like Next.js, Auth0 is an identity and access management platform for securing your apps and agentic workflows.

    This integration enables:

    • Automatic provisioning of an Auth0 application that connects to your Vercel project

    • Out-of-the-box support for your Next.js applications using the Auth0 Next.js SDK

    • Complete user management with hosted dashboards, sessions, and roles

    • Sync authentication configuration across Development, Preview, and Production environments

    Get started with Auth0 on the Vercel Marketplace.

  • Workflow SDK now runs natively in Nitro v3

    Workflow SDK's native Nitro v3 integration is now in beta. Steps run inside the same bundled runtime as the rest of your app, instead of a separate bundle. Nitro's useStorage() and other server-side APIs work directly inside "use step" functions.

    workflows/sync-user.ts
    import { useStorage } from "nitro/storage";
    export async function getUserPreferences(userId: string) {
    "use step";
    const storage = useStorage("cache");
    return await storage.getItem(`preferences:${userId}`);
    }

    Reading from Nitro storage inside a step function

    The Nitro dev server also serves the workflow web UI at /_workflow. Open it in your browser to inspect, monitor, and debug workflow runs.

    Workflow routes are now bundled by Nitro as part of the app build. Dependencies are traced, and unused code is tree-shaken, so the output includes only what runs, with faster builds and smaller bundles.

    Get started with Workflow SDK on Nitro.

    Rihan Arfan

  • GLM 5.2 now available on AI Gateway

    GLM 5.2 is now available on AI Gateway.

    Built for long-horizon tasks, GLM 5.2 carries project-level engineering context across a single task, runs long-running tasks more reliably, and follows engineering standards more consistently.

    The context window for this model has been upgraded to 1M tokens, up from 200K in GLM 5.1.

    To use GLM 5.2, set model to zai/glm-5.2 in the AI SDK:

    import { streamText } from 'ai';
    const result = streamText({
    model: 'zai/glm-5.2',
    prompt: 'Add error recovery to the data ingestion pipeline.',
    });

    AI Gateway provides a unified API for calling models, tracking usage and cost, and configuring retries, failover, and performance optimizations for higher-than-provider uptime. It includes built-in custom reporting, Zero Data Retention support, budgets for API keys, and more. AI Gateway reflects provider pricing with no markup and does not charge a platform fee on inference, including on Bring Your Own Key (BYOK) requests.

    Learn more about AI Gateway, view the AI Gateway model leaderboard or try it in our model playground.