When you try to cancel a new record, this is always saved. The rollback is never done because the new record is never inserted in the openEdits array.
The problem is in the dc_new method in the svy_nav_base form, setFormToEdit method is called before creating the new record, so it’s not found when doing rollback.
Callign setFormToEdit method after creating new record solves the bug.