# X_ACTION_STREAM_INVALID

## Means

a streaming action broke its stream contract

## Typical cause

stream: is declared beside a handle that is not an async generator, or a yielded chunk failed the stream schema

## Fix

`async *handle({ input, ctx }) { yield chunk; return output; } — yield only what stream: declares`

[Actions](/error-codes#actions)
