fix: filter out messages with empty content arrays for Bedrock API

The convertToModelMessages function from AI SDK can produce messages with
empty content arrays when assistant messages have only tool call parts or
when tool results aren't properly converted. Bedrock API rejects these with
400 errors. This fix filters out invalid messages before sending to the API.
This commit is contained in:
dayuan.jiang
2025-12-01 00:59:50 +09:00
parent b4679f6598
commit d48fba304c

View File

@@ -90,7 +90,10 @@ ${lastMessageText}
// Convert UIMessages to ModelMessages and add system message
const modelMessages = convertToModelMessages(messages);
let enhancedMessages = [...modelMessages];
// Filter out messages with empty content arrays (Bedrock API rejects these)
let enhancedMessages = modelMessages.filter((msg: any) =>
msg.content && Array.isArray(msg.content) && msg.content.length > 0
);
// Update the last message with formatted content if it's a user message
if (enhancedMessages.length >= 1) {