diff --git a/jam-ui/src/components/client/chat/JKChatMessageList.js b/jam-ui/src/components/client/chat/JKChatMessageList.js index 7e401968a..32c3d59c7 100644 --- a/jam-ui/src/components/client/chat/JKChatMessageList.js +++ b/jam-ui/src/components/client/chat/JKChatMessageList.js @@ -127,10 +127,13 @@ const JKChatMessageList = () => { /** * Fetch chat history when channel becomes active - * Only fetches if we haven't fetched yet for this channel + * Only fetches once per channel (when status is 'idle') + * Does NOT retry on failure to avoid infinite loops */ useEffect(() => { - if (activeChannel && fetchStatus !== 'loading' && fetchStatus !== 'succeeded') { + // Only fetch when status is 'idle' (initial state) + // This prevents infinite loops on API failure ('failed' status) + if (activeChannel && fetchStatus === 'idle') { // For session chat, activeChannel is the sessionId // Pass sessionId so the thunk knows to fetch 'session' channel type dispatch(fetchChatHistory({