diff --git a/chat/server.js b/chat/server.js index 188b88f..e487f08 100644 --- a/chat/server.js +++ b/chat/server.js @@ -5382,11 +5382,13 @@ async function restoreInterruptedSessions() { if (!session.restoredAfterRestart) continue; let hasQueuedMessages = false; + const messagesToProcess = []; if (Array.isArray(session.messages)) { for (const msg of session.messages) { if (msg.status === 'queued' && msg.retryAfterRestart) { hasQueuedMessages = true; messageCount++; + messagesToProcess.push(msg); log('Restoring message after restart', { sessionId: session.id, messageId: msg.id, @@ -5394,6 +5396,17 @@ async function restoreInterruptedSessions() { }); } } + + if (messagesToProcess.length > 0) { + let prev = Promise.resolve(); + for (const msg of messagesToProcess) { + prev = prev.then(async () => { + delete msg.retryAfterRestart; + await processMessage(session.id, msg); + }); + } + await prev; + } } if (hasQueuedMessages) {