## Nevertheless you cancel the download task, file is exist exactly in your app caches ``` this.downloadTask .config({ fileCache : true, path : RNFetchBlob.fs.dirs.DocumentDir + `/yourApp/${fileUniqueId}.mp3` }) .fetch('GET', downloadURL, {}); this.downloadTask .progress({ interval : 100 }, (received, total) => { console.log('progress ' + Math.floor(received/total*100) + '%'); progressCb(Math.floor(received/total*100)) }) .then(async (res)=>{ console.log("then response",res); console.log('The file saved to ', res.path()); const filePath = 'file://' + res.path(); //save file path in AsyncStorage let saveList = {}; const downloadList = await AsyncStorage.getItem("@download"); if(downloadList) saveList = JSON.parse(downloadList); saveList[contentKey] = filePath; return AsyncStorage.setItem("@download",JSON.stringify(saveList)) }) .then(()=>{ finishCb(); }) .catch((err)=>{ //you must add this line. If you don't add, your app users waste they're storage RNFetchBlob.fs.unlink(RNFetchBlob.fs.dirs.DocumentDir + `/yourApp/${fileUniqueId}.mp3`); console.log(err) }) ``` ## Android side download task cancel is not working You can find solution in this PR(past repo), It works well for me https://github.com/wkh237/react-native-fetch-blob/pull/568