Skip to main content

Run.resumeStream()

The .resumeStream() 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
Direct link to Usage example

const run = await workflow.createRun()

const stream = run.stream({
inputData: {
value: 'initial data',
},
})

const result = await stream.result

if (result!.status === 'suspended') {
const resumedStream = await run.resumeStream({
resumeData: {
value: 'resume data',
},
})
}

Parameters
Direct link to Parameters

resumeData?:

z.infer<TInput>
Input data that matches the workflow's input schema

requestContext?:

RequestContext
Request Context data to use during workflow execution

step?:

Step<string, any, any, any, any, TEngineType>
The step to resume execution from

forEachIndex?:

number
Target a specific iteration of a suspended .foreach() step. Pass the zero-based index of the iteration to resume; other iterations remain suspended. Omit to resume all suspended iterations of the step with the same resumeData.

tracingOptions?:

TracingOptions
Options for Tracing configuration.

rootSpanName?:

string
Display name for the root span of this trace, replacing the default workflow run: '<id>' or agent run: '<id>' name. Use it to tell runs apart in trace lists.

metadata?:

Record<string, any>
Metadata to add to the root trace span. Useful for adding custom attributes like user IDs, session IDs, or feature flags.

requestContextKeys?:

string[]
Additional RequestContext keys to extract as metadata for this trace. Supports dot notation for nested values (e.g., 'user.id').

traceId?:

string
Trace ID to use for this execution (1-32 hexadecimal characters). If provided, this trace will be part of the specified trace.

parentSpanId?:

string
Parent span ID to use for this execution (1-16 hexadecimal characters). If provided, the root span will be created as a child of this span.

nestUnderParent?:

boolean
Set to true together with parentSpanId to attach this run as a child of that span inside the existing trace, for example an LLM judge under the run it scores. Exporters then keep the trace's own name, input, output, and tags. Leave unset when parentSpanId comes from your own tracing system. Ignored without a valid traceId and parentSpanId.

tags?:

string[]
Tags to apply to this trace. String labels for categorizing and filtering traces.

Returns
Direct link to Returns

stream:

MastraWorkflowStream<ChunkType>
A custom stream that extends ReadableStream<ChunkType> with additional workflow-specific properties

stream.status:

Promise<RunStatus>
A promise that resolves to the current workflow run status

stream.result:

Promise<WorkflowResult<TState, TOutput, TSteps>>
A promise that resolves to the final workflow result

stream.usage:

Promise<{ inputTokens: number; outputTokens: number; totalTokens: number, reasoningTokens?: number, cacheInputTokens?: number }>
A promise that resolves to token usage statistics

Stream events
Direct link to Stream events

The stream emits 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. For successful runs, payload.finalWorkflowResult carries the workflow's final result
On this page