AlexCSDev / PatreonDownloader

Powerful tool for downloading content posted by creators on patreon.com. Supports content hosted on patreon itself as well as external sites (additional plugins might be required).
MIT License
969 stars 99 forks source link

Fatal error: "Operations that change non-concurrent collections must have exclusive access" (System.InvalidOperationException) #135

Closed laurence-myers closed 1 year ago

laurence-myers commented 2 years ago

I attempted to download all posts from a creator. I got up to "Downloaded 13343/13592" while downloading external images from googleusercontent, then I got this error message, and the app quit.

2022-07-17 18:26:27.6648 FATAL Fatal error, application will be closed: UniversalDownloaderPlatform.Engine.Exceptions.UniversalDownloaderPlatformException: Error while downloading https://c10.patreonusercontent.com/4/patreon-media/p/post/*redacted*/*redacted*/eyJwIjoxfQ%3D%3D/1.mp3?token-time=*redacted*&token-hash=*redacted*%3D&ext=.mp3: Operations that change non-concurrent collections must have exclusive access. A concurrent update was performed on this collection and corrupted its state. The collection's state is no longer correct.
 ---> System.InvalidOperationException: Operations that change non-concurrent collections must have exclusive access. A concurrent update was performed on this collection and corrupted its state. The collection's state is no longer correct.
   at System.Collections.Generic.Dictionary`2.FindValue(TKey key)
   at PatreonDownloader.Implementation.PatreonCrawledUrlProcessor.ProcessCrawledUrl(ICrawledUrl udpCrawledUrl, String downloadDirectory) in F:\Sources\BigProjects\PatreonDownloader\PatreonDownloader.Implementation\PatreonCrawledUrlProcessor.cs:line 207
   at UniversalDownloaderPlatform.Engine.DownloadManager.<>c__DisplayClass8_1.<<Download>b__0>d.MoveNext() in F:\Sources\BigProjects\PatreonDownloader\submodules\UniversalDownloaderPlatform\UniversalDownloaderPlatform.Engine\DownloadManager.cs:line 109
   --- End of inner exception stack trace ---
   at UniversalDownloaderPlatform.Engine.DownloadManager.<>c__DisplayClass8_1.<<Download>b__0>d.MoveNext() in F:\Sources\BigProjects\PatreonDownloader\submodules\UniversalDownloaderPlatform\UniversalDownloaderPlatform.Engine\DownloadManager.cs:line 109
--- End of stack trace from previous location ---
   at UniversalDownloaderPlatform.Engine.DownloadManager.Download(List`1 crawledUrls, String downloadDirectory, CancellationToken cancellationToken) in F:\Sources\BigProjects\PatreonDownloader\submodules\UniversalDownloaderPlatform\UniversalDownloaderPlatform.Engine\DownloadManager.cs:line 114
   at UniversalDownloaderPlatform.Engine.UniversalDownloader.Download(String url, String downloadDirectory, IUniversalDownloaderPlatformSettings settings) in F:\Sources\BigProjects\PatreonDownloader\submodules\UniversalDownloaderPlatform\UniversalDownloaderPlatform.Engine\UniversalDownloader.cs:line 204
   at PatreonDownloader.App.Program.RunPatreonDownloader(CommandLineOptions commandLineOptions) in F:\Sources\BigProjects\PatreonDownloader\PatreonDownloader.App\Program.cs:line 143
   at PatreonDownloader.App.Program.Main(String[] args) in F:\Sources\BigProjects\PatreonDownloader\PatreonDownloader.App\Program.cs:line 69

Options:

--descriptions --embeds --json --campaign-images --log-save --download-directory *redacted* --use-sub-directories
AlexCSDev commented 1 year ago

Should be fixed in latest version