fix reentrant abortion from catch() edge case