From e768627820e1f31d668241cdc03c3f7f67674d9c Mon Sep 17 00:00:00 2001 From: ulleo Date: Tue, 30 Sep 2025 11:06:50 +0800 Subject: [PATCH] fix: add session rollback after save datasource in chat error --- backend/apps/chat/task/llm.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/backend/apps/chat/task/llm.py b/backend/apps/chat/task/llm.py index 356e20d60..fa9cb52a7 100644 --- a/backend/apps/chat/task/llm.py +++ b/backend/apps/chat/task/llm.py @@ -495,10 +495,16 @@ def select_datasource(self): _engine_type = self.chat_question.engine _chat.engine_type = _ds.type_name # save chat - self.session.add(_chat) - self.session.flush() - self.session.refresh(_chat) - self.session.commit() + with self.session.begin_nested(): + # 为了能继续记日志,先单独处理下事务 + try: + self.session.add(_chat) + self.session.flush() + self.session.refresh(_chat) + self.session.commit() + except Exception as e: + self.session.rollback() + raise e elif data['fail']: raise SingleMessageError(data['fail'])