diff --git a/chat/server.js b/chat/server.js index 25a7d4f..1e12232 100644 --- a/chat/server.js +++ b/chat/server.js @@ -17354,6 +17354,19 @@ async function handleUndoMessage(req, res, sessionId, messageId, userId) { }); } else { log('Skipping undo command - message had zero output', { sessionId, messageId }); + + // If the message failed/had error, reset the opencode session to ensure fresh start + if (message.error || message.status === 'error') { + log('Resetting opencode session due to failed message', { + sessionId, + messageId, + previousSessionId: session.opencodeSessionId, + messageStatus: message.status, + hasError: !!message.error + }); + session.opencodeSessionId = null; + session.initialOpencodeSessionId = null; + } } // Clear todos from the message when undone