Skip to content

Using the messages in prepareStep in subsequent generateText sometimes throws InvalidPromptError #10910

@zsiegel92

Description

@zsiegel92

Description

This doesn't happen every time (the worst kind of bug!) but I sometimes get this kind of error:

InvalidPromptError [AI_InvalidPromptError]: Invalid prompt: The messages must be a ModelMessage[]. If you have passed a UIMessage[], you can use convertToModelMessages to convert them.
    at standardizePrompt (/home/runner/_work/my-repo/node_modules/.pnpm/ai@5.0.106_zod@3.25.76/node_modules/ai/src/prompt/standardize-prompt.ts:72:11)
    at async generateText (/home/runner/_work/my-repo/node_modules/.pnpm/ai@5.0.106_zod@3.25.76/node_modules/ai/src/generate-text/generate-text.ts:272:25)

when I do

let modelMessages: ModelMessage[] = []
await generateText({
  prepareStep: async ({messages}) =>{
    modelMessages = messages
    return {}
  }
  // ...
})

// ...

await generateText({
 messages: modelMessages,
  // ...
})

AI SDK Version

"ai": "^5.0.106"
"@ai-sdk/openai": "^2.0.77"
"zod": "^3.25.76"

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions