From 4667b4968334ab8dcedf83c860798b691d0e8d89 Mon Sep 17 00:00:00 2001 From: "dayuan.jiang" Date: Mon, 1 Dec 2025 01:05:05 +0900 Subject: [PATCH] fix: add diagnostic logging for empty message content Added logging to capture the original UI message structure when empty content is detected after conversion. This helps debug the root cause while the filter provides a safety net for Bedrock API compatibility. --- app/api/chat/route.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) 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 );