AI SDK 7.0.168–169 adds in-flight chat queuing and fixes request-option and auto-send races when approval goes first
Vercel released AI SDK 7.0.168 and 7.0.169 on November 10. useChat gains an experimental queue for messages sent while a response is in progress. A follow-up fix retains request options when the queue sends a tool approval first and pauses the queue while an asynchronous sendAutomaticallyWhen decision runs. The paired releases also ensure an invalid tool call triggers toUIMessageStream onError only once.
Why it matters
Generative UI commonly interleaves streamed responses, tool approval, and additional user input. If a queue advances past an asynchronous auto-send decision or an approval path drops headers, body, credentials, or other request options, a later turn can run with the wrong context, authentication, or duplicate send. Explicit ordering among queueing, approval, and auto-send is part of a predictable interaction state machine.
A closer look
7.0.168 adds experimental_queue to useChat for messages submitted during an active response and fixes repeated toUIMessageStream onError callbacks for an invalid tool call. 7.0.169 preserves request options when an approval message leaves the queue first and holds queued work until asynchronous sendAutomaticallyWhen finishes. It also uses Zod Mini for internal validation schemas to reduce bundle size while preserving classic Zod methods, error messages, and supported Zod 3 and 4 compatibility on public message schemas.
Who this is for
Frontend, platform, and security teams using AI SDK useChat, streamed tools, approvals, automatic continuation, or generative-UI state machines.
Original sources
- Vercel AI SDK official 7.0.168 and 7.0.169 releases ↗github.com
- AI SDK 7.0.168 release — queue and invalid-tool error handling ↗github.com
Revisions & corrections (1)
— Two same-day official releases form one coherent chat-queue and approval-ordering event, with the experimental boundary and unavailable commit pages explicitly preserved.