"before_cancel" controller does not work as expected

In my case I am linking the Salary Slip I added a child table, one of its fields (Loan Application Ref) is a link to a submitable doctype “Loan Application”. And in the “Loan Application”, there is a child table one of its field (Salary Slip Ref) is a Link to “Salary Slip”.

Before cancel Salary Slip, I remove “Salary Slip Ref” form the “Loan Application” DocType. And every thing works fine if I cancelled using bulk select.

But when i use the cancel button it shows this message

based on all of that i found that, there is a whitelist function being triggered, savecancel.

is there is a way to get over this behaviour?