Indeed, this is how it is designed to work. As I have mentioned in my previous message, the cancelChanges method will revert changes, making the deleted record to appear in the Grid again.
When given record is deleted it is removed from the DataSource's data thus, it is removed from the Grid content. Then when the DataSource is synced this record is actually send to the server for deletion. Therefore, with this event flow, it is only possible reverted back, not to prevent it from "disappearing", from the DataSource data when a server error during sync call occurs.
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI