diff --git a/app/api/chat/route.ts b/app/api/chat/route.ts index 437d849..2748f45 100644 --- a/app/api/chat/route.ts +++ b/app/api/chat/route.ts @@ -90,7 +90,27 @@ ${lastMessageText} // Convert UIMessages to ModelMessages and add system message const modelMessages = convertToModelMessages(messages); + + // Log messages with empty content for debugging (helps identify root cause) + const emptyMessages = modelMessages.filter((msg: any) => + !msg.content || !Array.isArray(msg.content) || msg.content.length === 0 + ); + if (emptyMessages.length > 0) { + console.warn('[Chat API] Messages with empty content detected:', + JSON.stringify(emptyMessages.map((m: any) => ({ role: m.role, contentLength: m.content?.length }))) + ); + console.warn('[Chat API] Original UI messages structure:', + JSON.stringify(messages.map((m: any) => ({ + id: m.id, + role: m.role, + partsCount: m.parts?.length, + partTypes: m.parts?.map((p: any) => p.type) + }))) + ); + } + // Filter out messages with empty content arrays (Bedrock API rejects these) + // This is a safety measure - ideally convertToModelMessages should handle all cases let enhancedMessages = modelMessages.filter((msg: any) => msg.content && Array.isArray(msg.content) && msg.content.length > 0 );