From 56a7ee63466f5077c7e377bcd9cbb21547c5e730 Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Mon, 29 Jun 2026 15:06:14 +0530 Subject: [PATCH] fix: delete Lead-linked Addresses on transaction deletion The lead/address cleanup pre-escaped each address name before passing the list into a query-builder .isin() filter, which escapes again. The double-escaping produced `name IN ('''Addr''')`, matching nothing, so Lead-linked Addresses were never deleted on either MariaDB or Postgres. Pass the raw list straight into .isin() so the builder escapes once. --- .../transaction_deletion_record/transaction_deletion_record.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py index 82694f2f9de..82ef3bb766b 100644 --- a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py +++ b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py @@ -702,8 +702,6 @@ class TransactionDeletionRecord(Document): "Dynamic Link", filters={"link_name": ("in", leads)}, pluck="parent" ) if addresses: - addresses = ["%s" % frappe.db.escape(addr) for addr in addresses] - address = qb.DocType("Address") dl1 = qb.DocType("Dynamic Link") dl2 = qb.DocType("Dynamic Link")