PlayFab / PlayFabPartyUnity

38 stars 7 forks source link

Network interruption causes _playFabMultiplayerManagerState to be stuck in wrong state. #24

Closed iequalshane closed 1 year ago

iequalshane commented 2 years ago

When PARTY_STATE_CHANGE_TYPE_NETWORK_DESTROYED is encountered and contains an errorDetail like 63 "failed to establish or maintain a connection to a network or remote peer", it does NOT set _playFabMultiplayerManagerState back to Initialized causing the state to be stuck in ConnectedToNetwork. Any attempts to join or create a network in the future will try to leave a network with a bad network handle because it's still in a ConnectedToNetwork without being connected to a network. PARTY_STATE_CHANGE_TYPE_NETWORK_DESTROYED should always result in the _playFabMultiplayerManagerState going back to the Initialized state regardless of error.

goodspeed3 commented 2 years ago

Did you change any code to help solve this? I tried manually setting _playFabMultiplayerManagerState back to Initialized but it's not letting me connect after network interruption, e.g., when I put the phone to sleep.

iequalshane commented 2 years ago

The only thing I added as part of my fix was setting the state back to initialized even if errorDetail is set. It's possible I've fixed something else earlier that helps this work better since my join flow is quite different from the normal code to allow for creating but not joining a network. I'd step through the JoinNetwork call and see where it fails.