fix: task should explicitly call `commit` and rollback if error
diff --git a/erpnext/accounts/doctype/subscriptions/subscriptions.py b/erpnext/accounts/doctype/subscriptions/subscriptions.py
index 8f5c4f4..ac0310a 100644
--- a/erpnext/accounts/doctype/subscriptions/subscriptions.py
+++ b/erpnext/accounts/doctype/subscriptions/subscriptions.py
@@ -424,8 +424,15 @@
 	Checks a `Subscription` and updates it status as necessary
 	"""
 	if data:
-		subscription = frappe.get_doc('Subscriptions', data['name'])
-		subscription.process()
+		try:
+			subscription = frappe.get_doc('Subscriptions', data['name'])
+			subscription.process()
+			frappe.db.commit()
+		except frappe.ValidationError:
+			frappe.db.rollback()
+			frappe.db.begin()
+			frappe.log_error(frappe.get_traceback())
+			frappe.db.commit()
 
 
 @frappe.whitelist()