From 790560ebf8caf4ffab4e94afa8a3426083f9a10a Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Mon, 29 Jun 2026 22:45:19 +0530 Subject: [PATCH] fix(stock): rollback before marking Stock Closing Entry failed (Postgres) prepare_closing_stock_balance (background job) saves Stock Closing Balance rows + db_set status; on failure the except runs db_set('Failed')+log_error with no rollback, raising InFailedSqlTransaction on Postgres so the doc is never marked Failed and the job dies. Full frappe.db.rollback() before the handler's db_set. No-op on MariaDB. --- erpnext/stock/doctype/stock_closing_entry/stock_closing_entry.py | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/stock/doctype/stock_closing_entry/stock_closing_entry.py b/erpnext/stock/doctype/stock_closing_entry/stock_closing_entry.py index 106983efc9d..00a3b0204c4 100644 --- a/erpnext/stock/doctype/stock_closing_entry/stock_closing_entry.py +++ b/erpnext/stock/doctype/stock_closing_entry/stock_closing_entry.py @@ -152,6 +152,7 @@ def prepare_closing_stock_balance(name): doc.create_stock_closing_balance_entries() doc.db_set("status", "Completed") except Exception: + frappe.db.rollback() doc.db_set("status", "Failed") doc.log_error(title="Stock Closing Entry Failed")