Collapse icon indicating copy to clipboard operation
Collapse copied to clipboard

[Bug]: Connection issue popup making application unusable

Open sharaths21312 opened this issue 10 months ago • 3 comments

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

sharaths21312 avatar Apr 22 '24 13:04 sharaths21312

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

bagusnl avatar Apr 22 '24 13:04 bagusnl

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?

neon-nyan avatar Apr 22 '24 13:04 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?

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

bagusnl avatar Apr 22 '24 14:04 bagusnl

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)

bluebudg-e avatar Jun 07 '24 07:06 bluebudg-e

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

bagusnl avatar Aug 04 '24 17:08 bagusnl