I am using https://github.com/koush/ion in my app to download files from urls and write them to Android devices.
Most of the time it works great but from the statistics there are around 15% of my users getting null file from the call back (onCompleted)
This is part of the code I use.
File d = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File f = new File(d, 'some_file_name');
Ion.with(this).load('some_url')
    .progress(new ProgressCallback() {
      ............
    })
    .write(f)
    .setCallback(new FutureCallback<File>() {
        @Override
        public void onCompleted(Exception e, File file) {
              ....... file is null .....
        }
    });