diff --git a/server/utils/chats/stream.js b/server/utils/chats/stream.js
index 643f3d4398e874533c307e934b01903ab19207d6..4eb9cf0221a1da1c29fec346a548e04a4f9ab964 100644
--- a/server/utils/chats/stream.js
+++ b/server/utils/chats/stream.js
@@ -253,7 +253,16 @@ function handleStreamResponses(response, stream, responseProps) {
         } catch {}
 
         if (!validJSON) {
-          chunk += message;
+          // It can be possible that the chunk decoding is running away
+          // and the message chunk fails to append due to string length.
+          // In this case abort the chunk and reset so we can continue.
+          // ref: https://github.com/Mintplex-Labs/anything-llm/issues/416
+          try {
+            chunk += message;
+          } catch (e) {
+            console.error(`Chunk appending error`, e);
+            chunk = "";
+          }
           continue;
         } else {
           chunk = "";