-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Open
Labels
ai/coreai/providerbugSomething isn't working as documentedSomething isn't working as documentedprovider/anthropicsupport
Description
Description
Bug Report: Message Validation Error After Tool Approval
Error Message
Error: messages.2: all messages must have non-empty content except for the optional final assistant message
When It Occurs
This error occurs only after approving tool calls. The flow is:
- User sends an approval via
addToolApprovalResponse() sendAutomaticallyWhen: lastAssistantMessageIsCompleteWithApprovalResponsestriggers auto-send- Error is thrown during the streaming response
Environment
Backend:
ai: v6.0.33@ai-sdk/anthropic: v3.0.0-beta.98
Frontend:
@ai-sdk/react: v3.0.35
Code Location
Backend - Where error is caught
// chat.service.ts line 1221
const result = createAgentUIStreamResponse({
agent: agentRunner,
uiMessages: processedMessages,
generateMessageId,
onError: (error) => {
// Error appears here after tool approval
console.error("Failed to stream chat:", error);
return error.message;
},
});Frontend - Auto-send configuration
// use-chat-wrapper.ts line 131
const { addToolApprovalResponse } = useChat({
transport: transport as any as ChatTransport<any>,
sendAutomaticallyWhen: (options) =>
lastAssistantMessageIsCompleteWithApprovalResponses(options) ||
lastAssistantMessageIsCompleteWithToolCalls(options),
});Frontend - Sending approval
// use-chat-wrapper.ts line 263
const sendToolApprovalResponse = async (approvalId: string, approved: boolean) => {
await addToolApprovalResponse({
id: approvalId,
approved,
});
// sendAutomaticallyWhen triggers here and error occurs during streaming
};Observations
- Error only occurs after tool approval, not during initial tool call
- Our messages use parts-based format without top-level
contentfield - Error is caught in
onErrorcallback ofcreateAgentUIStreamResponse - Error happens only after calling tools that are marked
needsApprovaland granting them the approval
Questions
- Does
createAgentUIStreamResponserequire acontentfield on messages after tool approval responses? - Should approval response messages automatically generate a
contentfield?
AI SDK Version
- ai: 6.0.33
- @ai-sdk/react: 3.0.35
Same error occured on these versions
- ai: 6.0.0-beta.169
- @AI-SDK: 3.0.0-beta.172
Tried to update but did not resolve.
Code of Conduct
- I agree to follow this project's Code of Conduct
LaPulgaaa
Metadata
Metadata
Assignees
Labels
ai/coreai/providerbugSomething isn't working as documentedSomething isn't working as documentedprovider/anthropicsupport