diff --git a/LightlessSync/WebAPI/Files/FileDownloadManager.cs b/LightlessSync/WebAPI/Files/FileDownloadManager.cs index 2731619..8aa2b0b 100644 --- a/LightlessSync/WebAPI/Files/FileDownloadManager.cs +++ b/LightlessSync/WebAPI/Files/FileDownloadManager.cs @@ -502,6 +502,14 @@ public partial class FileDownloadManager : DisposableMediatorSubscriberBase } } + private void RemoveStatus(string key) + { + lock (_downloadStatusLock) + { + _downloadStatus.Remove(key); + } + } + private async Task DecompressBlockFileAsync( string downloadStatusKey, string blockFilePath, @@ -595,6 +603,10 @@ public partial class FileDownloadManager : DisposableMediatorSubscriberBase { Logger.LogError(ex, "{dlName}: Error during block file read", downloadLabel); } + finally + { + RemoveStatus(downloadStatusKey); + } } public async Task> InitiateDownloadList( @@ -866,6 +878,8 @@ public partial class FileDownloadManager : DisposableMediatorSubscriberBase MarkTransferredFiles(directDownload.DirectDownloadUrl!, 1); Logger.LogDebug("Finished direct download of {hash}.", directDownload.Hash); + + RemoveStatus(directDownload.DirectDownloadUrl!); } catch (OperationCanceledException ex) {