# Run.resumeStreamVNext() (Experimental)
[EN] Source: https://mastra.ai/reference/streaming/workflows/resumeStreamVNext

:::caution Experimental Feature
This is an experimental API that may change in future versions. The `resumeStreamVNext()` method is part of the enhanced streaming system that will eventually replace the current streaming methods. Use with caution in production environments.
:::

The `.resumeStreamVNext()` method resumes a suspended workflow run with new data, allowing you to continue execution from a specific step and to observe the stream of events.

## Usage example

```typescript showLineNumbers copy
const run = await workflow.createRunAsync();

const stream = run.streamVNext({
  inputData: {
    value: "initial data",
  },
});

const result = await stream.result;

if (result!.status === "suspended") {
  const resumedStream = await run.resumeStreamVNext({
    resumeData: {
      value: "resume data",
    },
  });
}
```

## Parameters

<PropertiesTable
  content={[
    {
      name: "resumeData",
      type: "z.infer<TInput>",
      description: "Input data that matches the workflow's input schema",
      isOptional: true,
    },
    {
      name: "runtimeContext",
      type: "RuntimeContext",
      description: "Request Context data to use during workflow execution",
      isOptional: true,
    },
    {
      name: "step",
      type: "Step<string, any, any, any, any, TEngineType>",
      description: "The step to resume execution from",
      isOptional: true,
    },
    {
      name: "tracingOptions",
      type: "TracingOptions",
      isOptional: true,
      description: "Options for AI tracing configuration.",
      properties: [
        {
          parameters: [
            {
              name: "metadata",
              type: "Record<string, any>",
              isOptional: true,
              description:
                "Metadata to add to the root trace span. Useful for adding custom attributes like user IDs, session IDs, or feature flags.",
            },
          ],
        },
      ],
    },
  ]}
/>

## Returns

<PropertiesTable
  content={[
    {
      name: "stream",
      type: "MastraWorkflowStream<ChunkType>",
      description:
        "A custom stream that extends ReadableStream<ChunkType> with additional workflow-specific properties",
    },
    {
      name: "stream.status",
      type: "Promise<RunStatus>",
      description: "A promise that resolves to the current workflow run status",
    },
    {
      name: "stream.result",
      type: "Promise<WorkflowResult<TState, TOutput, TSteps>>",
      description: "A promise that resolves to the final workflow result",
    },
    {
      name: "stream.usage",
      type: "Promise<{ inputTokens: number; outputTokens: number; totalTokens: number, reasoningTokens?: number, cacheInputTokens?: number }>",
      description: "A promise that resolves to token usage statistics",
    },
  ]}
/>

## Stream Events

The stream emits various event types during workflow execution. Each event has a `type` field and a `payload` containing relevant data:

- **`workflow-start`**: Workflow execution begins
- **`workflow-step-start`**: A step begins execution
- **`workflow-step-output`**: Custom output from a step
- **`workflow-step-result`**: A step completes with results
- **`workflow-finish`**: Workflow execution completes with usage statistics

## Related

- [Workflows overview](/docs/workflows/overview#running-workflows)
- [Workflow.createRunAsync()](/reference/workflows/workflow-methods/create-run)
- [Run.streamVNext()](./streamVNext)


---
title: "Reference: Run.stream() | Streaming"
description: Documentation for the `Run.stream()` method in workflows, which allows you to monitor the execution of a workflow run as a stream.
---