Affected Versions:
@mastra/react@0.1.0-beta.22 and @0.1.0-beta.23
@mastra/client-js@1.0.0-beta.22 and @1.0.0-beta.23
Symptoms:
Chat stream endpoint returns Invalid request body error: "expected array, received object" for the messages field
Network endpoint works fine
Root Cause:
The useChat hook in @mastra/react calls:
agent.stream({ messages, runId, ... }) // single object
But @mastra/client-js beta.22+ expects:
agent.stream(messages, { runId, ... }) // two arguments
This causes double-wrapping: { messages: { messages: [...], runId, ... } }
Working Version:
@mastra/client-js@1.0.0-beta.21 has detection logic that handles both signatures:
if (typeof messagesOrParams === "object" && "messages" in messagesOrParams) { params = messagesOrParams; // handle single-object} else { params = { messages: messagesOrParams, ...options }; // handle two-arg}
This detection was removed in beta.22.