diff --git a/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py b/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py index 11bb6f2082e47ec7f46df1deb835ebe7dd482d95..0ca876ec5269ce6a67f2947ce9692f53f4df80fa 100644 --- a/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py +++ b/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py @@ -253,7 +253,7 @@ def repost(doc): status = "Failed" # If failed because of timeout, set status to In Progress - if traceback and "timeout" in traceback.lower(): + if traceback and ("timeout" in traceback.lower() or "Deadlock found" in traceback): status = "In Progress" if traceback: @@ -268,13 +268,14 @@ def repost(doc): }, ) - outgoing_email_account = frappe.get_cached_value( - "Email Account", {"default_outgoing": 1, "enable_outgoing": 1}, "name" - ) + if status == "Failed": + outgoing_email_account = frappe.get_cached_value( + "Email Account", {"default_outgoing": 1, "enable_outgoing": 1}, "name" + ) - if outgoing_email_account and not isinstance(e, RecoverableErrors): - notify_error_to_stock_managers(doc, message) - doc.set_status("Failed") + if outgoing_email_account and not isinstance(e, RecoverableErrors): + notify_error_to_stock_managers(doc, message) + doc.set_status("Failed") finally: if not frappe.flags.in_test: frappe.db.commit()