Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to GIN Transaction Pending State - Connection Interrupts - WebSocket Issue #188

Open
reasje opened this issue Feb 10, 2025 · 3 comments
Assignees

Comments

@reasje
Copy link

reasje commented Feb 10, 2025

Users are experiencing issues where transactions are unable to reach the 'Pending' state, likely due to connection interruptions. This appears to be related to WebSocket connectivity problems.

@reasje reasje self-assigned this Feb 10, 2025
@reasje
Copy link
Author

reasje commented Feb 10, 2025

@SanghamitraBhowmick1993
I have tested these cases, Applied some improvements but there are factors that might still cause the issue, If you experience any issues, It would be great If you can report steps (Even intermittent), With exported logs, So that I can have closer look.
Scenarios that I didn't get any issues on latest build:

  • Changing chains
  • Switching accounts
  • Internet disconnect (Full disconnection)

@reasje
Copy link
Author

reasje commented Feb 11, 2025

@SanghamitraBhowmick1993
Sang still faced this issue,
I checked websocket handling
We are doing our best to handle connection interuption on this matter
There are two retry mechanism to handle timeout error
But sometimes It just doesn't connect
In the logs Sang sent, The retry function tried to connect for more than 3 mins and It was still trying to connect ....
I confirm, No problem are detected on Flutter side.

After investigating more changing ISP solved the problem, The first ISP connection speed was 11 Mbps, Second one was is 22 Mbps.

Related logs :

 2025-02-10 22:13:10   LogLevel.ERROR      reportErrorAndLog   Instance of 'ChannelTimeoutException' #0      Push.future (package:phoenix_socket/src/push.dart:118)
<asynchronous suspension>
#1      PhoenixClient.joinChannel (package:mxc_logic/src/data/socket/phoenix/phoenix_client.dart:113)
<asynchronous suspension>
#2      PhoenixClient.subscribeToEvent (package:mxc_logic/src/data/socket/phoenix/phoenix_client.dart:100)
<asynchronous suspension>
#3      MXCWebsocketUseCase.subscribeEvent (package:moonchain_wallet/features/common/contract/mxc_websocket_use_case.dart:94)
<asynchronous suspension>
#4      MXCWebsocketUseCase.subscribeToAddressEvents (package:moonchain_wallet/features/common/contract/mxc_websocket_use_case.dart:135)
<asynchronous suspension>
#5      MXCWebsocketUseCase.initializeListeners.<anonymous closure>.<anonymous closure> (package:moonchain_wallet/features/common/contract/mxc_websocket_use_case.dart:73)
<asynchronous suspension>
#6      RetryOptions.retry (package:retry/retry.dart:131)
<asynchronous suspension>
   Instance of 'ChannelTimeoutException'  
 2025-02-10 22:15:00   LogLevel.ERROR      reportErrorAndLog   Instance of 'ChannelTimeoutException' #0      Push.future (package:phoenix_socket/src/push.dart:118)
<asynchronous suspension>
#1      PhoenixClient.joinChannel (package:mxc_logic/src/data/socket/phoenix/phoenix_client.dart:113)
<asynchronous suspension>
#2      PhoenixClient.subscribeToEvent (package:mxc_logic/src/data/socket/phoenix/phoenix_client.dart:100)
<asynchronous suspension>
#3      MXCWebsocketUseCase.subscribeEvent (package:moonchain_wallet/features/common/contract/mxc_websocket_use_case.dart:94)
<asynchronous suspension>
#4      MXCWebsocketUseCase.subscribeToAddressEvents (package:moonchain_wallet/features/common/contract/mxc_websocket_use_case.dart:135)
<asynchronous suspension>
#5      MXCWebsocketUseCase.initializeListeners.<anonymous closure>.<anonymous closure> (package:moonchain_wallet/features/common/contract/mxc_websocket_use_case.dart:73)
<asynchronous suspension>
#6      RetryOptions.retry (package:retry/retry.dart:131)
<asynchronous suspension>
   Instance of 'ChannelTimeoutException'  

@reasje
Copy link
Author

reasje commented Mar 3, 2025

@SanghamitraBhowmick1993
According to our test, If the ineternet provider has higher speed than 11 Mbps, For example It is 22 (Which was the working ISP), The websocket works as expected.
Also VPN icreased websocket speed.

Just to finalize, If we get reports from India that connection is not stable, We will need to consider improving the service speed for India.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant