MatchInvDelete line 57 is doing inv.saveEx();
this line is useless and misleading
1 - the transaction is going to be rolled back because is returning Error
2 - saving after deleted is trying to create a new one
3 - real errors that appears in inv.delete are hidden because of the error trying to save (f.e. dup key insert)