make sure the delegate can cancel the operation by mistake in a callback