Collapse
Collapse copied to clipboard
[Bug]: Connection issue popup making application unusable
Affected Version
Collapse 1.80.0 (preview), 1.73.8
Bug Behavior
Once every few seconds, there's a screenwide popup making it impossible to click anywhere or use the app. These popups appear to stack, so if the app is running in the background for a while sometimes there can be many of these making it impossible to use.
Expected Behavior
The warning message should preferably either:
- be hidden to the user
- disappear after being ignored once
- appear as a notification instead of a popup
Steps to reproduce
Simply open the app and keep it open
This issue occurs for me when connecting through Cloudflare WARP on an internet connection that would normally block hoyo servers, but the games still download just fine (and the issues seem to have only started from a recent update to Collapse)
Related Issues
No response
Screenshot(s)
https://github.com/CollapseLauncher/Collapse/assets/62636355/a9fdd5d9-3507-44a7-ad84-f7abe8af91c4
Additional Information
The full error message is:
System.Threading.Tasks.TaskCanceledException: The request was canceled due to the configured HttpClient.Timeout of 60 seconds elapsing.
---> System.TimeoutException: A task was canceled.
---> System.Threading.Tasks.TaskCanceledException: A task was canceled.
at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage, Boolean, Boolean, CancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage, Boolean, CancellationToken)
at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage, Boolean, CancellationToken)
at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage, HttpCompletionOption, CancellationTokenSource, Boolean, CancellationTokenSource, CancellationToken)
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
at System.Net.Http.HttpClient.HandleFailure(Exception, Boolean, HttpResponseMessage, CancellationTokenSource, CancellationToken, CancellationTokenSource)
at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage, HttpCompletionOption, CancellationTokenSource, Boolean, CancellationTokenSource, CancellationToken)
at CollapseLauncher.FallbackCDNUtil.GetURLHttpResponse(String URL, CancellationToken token, Boolean isForceUncompressRequest) in C:\projects\collapse\CollapseLauncher\Classes\RegionManagement\FallbackCDNUtil.cs:line 372
at CollapseLauncher.FallbackCDNUtil.GetHttpStreamFromResponse(String URL, CancellationToken token) in C:\projects\collapse\CollapseLauncher\Classes\RegionManagement\FallbackCDNUtil.cs:line 378
at CollapseLauncher.MainPage.TryDownloadToCompleteness(String url, FileInfo fileInfo, CancellationToken token) in C:\projects\collapse\CollapseLauncher\Classes\RegionManagement\RegionManagement.cs:line 280
There seems to be 3 overlapping log files generated, so I'm attaching all of them log-2024-04-22-pre1.80.0-id0.log log-2024-04-22-prevUnknown-id1.log log-2024-04-22-pre1.80.0-id1.log
Heyyo~
Generally, all access to the necessary miHoYo API function is needed for Collapse to function normally. But I think in this case, there is a need to add an x/Close
button to the popup so users can close the popup without having to go back a page (in this case would just refresh HomePage)
Cc @neon-nyan
Heyyo~
Generally, all access to the necessary miHoYo API function is needed for Collapse to function normally. But I think in this case, there is a need to add an
x/Close
button to the popup so users can close the popup without having to go back a page (in this case would just refresh HomePage)Cc @neon-nyan
Hmm... I think the best way to fix this issue is to exclude timeout exception on TryDownloadToCompleteness()
so it can be bypassed. Technically it's possible to bypass the next exception by adding a checkbox to "Not showing the error again". Which one do you prefer?
Hmm... I think the best way to fix this issue is to exclude timeout exception on
TryDownloadToCompleteness()
so it can be bypassed. Technically it's possible to bypass the next exception by adding a checkbox to "Not showing the error again". Which one do you prefer?
While completely bypassing the exception seems like not a good idea, I think deferring that specific exception until the next time Collapse starts will be preferable. It's because if we always ignore that exception on all start, it might cause an unexpected UX when certain APIs can't be fetch
this happens to me too (with a similar error), although usually at times when my internet connection is being spotty
The error that appears for me;
System.Threading.Tasks.TaskCanceledException: The request was canceled due to the configured HttpClient.Timeout of 60 seconds elapsing.
---> System.TimeoutException: A task was canceled.
---> System.Threading.Tasks.TaskCanceledException: A task was canceled.
at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage, Boolean, Boolean, CancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage, Boolean, CancellationToken)
at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage, Boolean, CancellationToken)
at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage, HttpCompletionOption, CancellationTokenSource, Boolean, CancellationTokenSource, CancellationToken)
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
at System.Net.Http.HttpClient.HandleFailure(Exception, Boolean, HttpResponseMessage, CancellationTokenSource, CancellationToken, CancellationTokenSource)
at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage, HttpCompletionOption, CancellationTokenSource, Boolean, CancellationTokenSource, CancellationToken)
at CollapseLauncher.FallbackCDNUtil.GetURLHttpResponse(String URL, CancellationToken token, Boolean isForceUncompressRequest)
at CollapseLauncher.FallbackCDNUtil.GetHttpStreamFromResponse(String URL, CancellationToken token)
at CollapseLauncher.MainPage.TryDownloadToCompleteness(String url, FileInfo fileInfo, CancellationToken token)
Fixed in 1.81.1 https://github.com/CollapseLauncher/Collapse/releases/tag/CL-v1.81.1-pre If you still have problem, reopen this ticket or open another one.
Thanks for the support <3