fix(DX): capture tracebacks with context (#39060)

diff --git a/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.py b/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.py
index f44b14c..761c2bc 100644
--- a/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.py
+++ b/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.py
@@ -440,7 +440,7 @@
 					# Update the parent doc about the exception
 					frappe.db.rollback()
 
-					traceback = frappe.get_traceback()
+					traceback = frappe.get_traceback(with_context=True)
 					if traceback:
 						message = "Traceback: <br>" + traceback
 						frappe.db.set_value("Process Payment Reconciliation Log", log, "error_log", message)
diff --git a/erpnext/accounts/doctype/repost_payment_ledger/repost_payment_ledger.py b/erpnext/accounts/doctype/repost_payment_ledger/repost_payment_ledger.py
index 38bc1a6..2d10f7c 100644
--- a/erpnext/accounts/doctype/repost_payment_ledger/repost_payment_ledger.py
+++ b/erpnext/accounts/doctype/repost_payment_ledger/repost_payment_ledger.py
@@ -43,7 +43,7 @@
 			except Exception as e:
 				frappe.db.rollback()
 
-				traceback = frappe.get_traceback()
+				traceback = frappe.get_traceback(with_context=True)
 				if traceback:
 					message = "Traceback: <br>" + traceback
 					frappe.db.set_value(repost_doc.doctype, repost_doc.name, "repost_error_log", message)
diff --git a/erpnext/manufacturing/doctype/bom_creator/bom_creator.py b/erpnext/manufacturing/doctype/bom_creator/bom_creator.py
index bd010d9..1709a1f 100644
--- a/erpnext/manufacturing/doctype/bom_creator/bom_creator.py
+++ b/erpnext/manufacturing/doctype/bom_creator/bom_creator.py
@@ -251,7 +251,7 @@
 
 			frappe.msgprint(_("BOMs created successfully"))
 		except Exception:
-			traceback = frappe.get_traceback()
+			traceback = frappe.get_traceback(with_context=True)
 			self.db_set(
 				{
 					"status": "Failed",
diff --git a/erpnext/stock/doctype/closing_stock_balance/closing_stock_balance.py b/erpnext/stock/doctype/closing_stock_balance/closing_stock_balance.py
index 7db8522..f71d21d 100644
--- a/erpnext/stock/doctype/closing_stock_balance/closing_stock_balance.py
+++ b/erpnext/stock/doctype/closing_stock_balance/closing_stock_balance.py
@@ -149,6 +149,4 @@
 		doc.db_set("status", "Completed")
 	except Exception as e:
 		doc.db_set("status", "Failed")
-		traceback = frappe.get_traceback()
-
-		frappe.log_error("Closing Stock Balance Failed", traceback, doc.doctype, doc.name)
+		doc.log_error(title="Closing Stock Balance Failed")
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 97ada06..79b8ee3 100644
--- a/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py
+++ b/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py
@@ -294,7 +294,7 @@
 			raise
 
 		frappe.db.rollback()
-		traceback = frappe.get_traceback()
+		traceback = frappe.get_traceback(with_context=True)
 		doc.log_error("Unable to repost item valuation")
 
 		message = frappe.message_log.pop() if frappe.message_log else ""
diff --git a/erpnext/stock/reorder_item.py b/erpnext/stock/reorder_item.py
index 9075608..a6f52f3 100644
--- a/erpnext/stock/reorder_item.py
+++ b/erpnext/stock/reorder_item.py
@@ -141,7 +141,7 @@
 			exceptions_list.extend(frappe.local.message_log)
 			frappe.local.message_log = []
 		else:
-			exceptions_list.append(frappe.get_traceback())
+			exceptions_list.append(frappe.get_traceback(with_context=True))
 
 		mr.log_error("Unable to create material request")
 
diff --git a/erpnext/utilities/bulk_transaction.py b/erpnext/utilities/bulk_transaction.py
index df21b61..679d5bd 100644
--- a/erpnext/utilities/bulk_transaction.py
+++ b/erpnext/utilities/bulk_transaction.py
@@ -62,7 +62,7 @@
 				task(log.transaction_name, log.from_doctype, log.to_doctype)
 			except Exception as e:
 				frappe.db.rollback(save_point="before_creation_state")
-				update_log(log.name, "Failed", 1, str(frappe.get_traceback()))
+				update_log(log.name, "Failed", 1, str(frappe.get_traceback(with_context=True)))
 			else:
 				update_log(log.name, "Success", 1)
 
@@ -86,7 +86,7 @@
 			fail_count += 1
 			create_log(
 				doc_name,
-				str(frappe.get_traceback()),
+				str(frappe.get_traceback(with_context=True)),
 				from_doctype,
 				to_doctype,
 				status="Failed",