From 204fb51bb939c297ce72164b9c7a7c08ec80803e Mon Sep 17 00:00:00 2001 From: sokumon Date: Tue, 24 Feb 2026 12:23:06 +0530 Subject: [PATCH] fix: make removal of orphan entities robust --- frappe/model/sync.py | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/frappe/model/sync.py b/frappe/model/sync.py index 12718d813a..5388055242 100644 --- a/frappe/model/sync.py +++ b/frappe/model/sync.py @@ -238,17 +238,22 @@ def remove_orphan_entities(): all_enitities = frappe.get_all( app_entity, filters=entity_filter_map.get(app_entity), fields=["name", "app"] ) - for i, w in enumerate(all_enitities): - if w.app and not check_if_record_exists("app", frappe.get_app_path(w.app), app_entity, w.name): - try: - print(f"Deleting entity {app_entity} {w.name}") - frappe.delete_doc(app_entity, w.name, force=True, ignore_missing=True) - update_progress_bar(f"Deleting orphaned {app_entity}", i, len(all_enitities)) - print() - - except Exception as e: - print(f"Error occurred while deleting entity: {app_entity} {w.name}") - print(e) + for i, entity in enumerate(all_enitities): + try: + app_path = frappe.get_app_path(entity.app) + if entity.app and not check_if_record_exists("app", app_path, app_entity, entity.name): + try: + print(f"Deleting entity {app_entity} {entity.name}") + frappe.delete_doc(app_entity, entity.name, force=True, ignore_missing=True) + update_progress_bar(f"Deleting orphaned {app_entity}", i, len(all_enitities)) + print() + except Exception as e: + print(f"Error occurred while deleting entity: {app_entity} {entity.name}") + print(e) + except ModuleNotFoundError as e: + print(e) + print(f"Deleting entity {app_entity} {entity.name}") + frappe.db.delete(app_entity, {"name": entity.name}) # save the deleted icons frappe.db.commit() # nosemgrep