The main reason that the write-off of leave is displayed in "Leave accrual history" after the request is deleted - incorrect service settings applied.
Before deleting, the System task (Set person time off status) should be performed to delete the leave record.
To solve this problem:
1. Using an account with administrator rights go to Service Catalogue
2. Open service for time-off requests to edit
3. Make sure that you have "Canceled" stage or equal with System task (Set person time off status)
4. Go to the Settings tab
5. In the Requests deleting section choose the option "Transition request to stage before deletion"
6. In the Stage option that appears below, select the "canceled" stage or equal.
7. Save service.