From 02f8dc058b9081b41473a682c566ab2d2e52be4d Mon Sep 17 00:00:00 2001 From: jiaxin Date: Fri, 3 Apr 2026 12:54:40 +0800 Subject: [PATCH] fix: prevent duplicate user message when clicking chatbot suggested prompt (#146) When clicking a suggested prompt, a race condition between sendMessage (initialPrompt effect) and fetchSessionDetail (selectedSessionId effect) could cause the same user message to appear twice. Skip overwriting messages via setMessages after the initial prompt has been submitted. --- .../[organization]/[connectionId]/chatbot/thread/chatbox.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apps/web/app/(app)/[organization]/[connectionId]/chatbot/thread/chatbox.tsx b/apps/web/app/(app)/[organization]/[connectionId]/chatbot/thread/chatbox.tsx index 6ea43d8..02f6da4 100644 --- a/apps/web/app/(app)/[organization]/[connectionId]/chatbot/thread/chatbox.tsx +++ b/apps/web/app/(app)/[organization]/[connectionId]/chatbot/thread/chatbox.tsx @@ -92,6 +92,11 @@ const ChatBotComp = ({ sessionId, initialMessages, onConversationActivity, onSes appliedInitialRef.current = null; } + // Skip overwriting messages after initial prompt was submitted, + // to avoid a race condition where fetchSessionDetail returns the + // just-sent user message and causes it to appear twice. + if (initialPromptSubmittedRef.current) return; + const key = initialMessages.map(message => message.id).join('|'); if (appliedInitialRef.current !== key) { setMessages(initialMessages);