Search Issue Tracker

Fixed in 5.4.0

Votes

0

Found in

5.3.5f1

Issue ID

805468

Regression

No

[UNET]Leaving a lobby prevents client from rejoining and trying to rejoin fills up slots

Networking

-

Steps to reproduce:
1. Open attached project.
2. Open "Build Settings" window. If you see this error message:
"Because you are not a member of this project this build will not access Unity services.",
please, go to "Window->Services->Multiplayer->Go to dashboard" and set up a new Network Lobby (more information here: http://blogs.unity3d.com/2015/09/10/unity-services-are-just-a-few-clicks-away/).
3. Build a project and play it.
4. Enter player's name and press "Create" button to host a game.
5. Back to the Unity Editor and enter the Play mode.
6. Press "List servers" button.
7. Select the server that was created during the fourth step, press "Join" button and wait until the client joins the game.
8. Back to the host and press "X" button that is located in the right of "Player2" to kick this client (alternatively, the client might press "Back" button).
9. Again back to the client and press "List servers" button.
10. When the servers are listed, select the one that was created during the fourth step and press "Join" button.
11. Notice that the connection lasts forever and the "Console" window outputs these error messages (different versions of Unity outputs different error messages):

"Join Failed:[[UnityEngine.Networking.Match.JoinMatchResponse]-success:False-extendedInfo:failed: Failed enumerating host node id appId=1146902. Match is likely unavailable, please select another to join.]-address:,port:0,networkId:0x0000000000000000,nodeId:0x0000,usingRelay:False
UnityEngine.Networking.Match.<ProcessMatchResponse>c__Iterator0`1:MoveNext()"

"ArgumentException: An element with the same key already exists in the dictionary.
System.Collections.Generic.Dictionary`2[UnityEngine.Networking.Types.NetworkID,UnityEngine.Networking.Types.NetworkAccessToken].Add (NetworkID key, UnityEngine.Networking.Types.NetworkAccessToken value) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:404)
UnityEngine.Networking.Utility.SetAccessTokenForNetwork (NetworkID netId, UnityEngine.Networking.Types.NetworkAccessToken accessToken) (at C:/buildslave/unity/build/Runtime/Networking/Managed/UNETTypes.cs:119)
UnityEngine.Networking.NetworkManager.OnMatchJoined (UnityEngine.Networking.Match.JoinMatchResponse matchInfo) (at C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkManager.cs:1215)
UnityEngine.Networking.Match.NetworkMatch+<ProcessMatchResponse>c__Iterator0`1[UnityEngine.Networking.Match.JoinMatchResponse].MoveNext () (at C:/buildslave/unity/build/Runtime/Networking/Managed/MatchMakingClient.cs:302)"

12. As a client press "Cancel" button and try rejoining the game.

Actual result:
The client cannot rejoin the game, however, the slots fills up (every time the client tries rejoining the game) and when it reaches the limit of the players, the client cannot found a server anymore.

Expected result:
After the client leaves the game, he should be fully removed from the game, so that he would be able to rejoin the game later.

Reproduced with:
5.3.4f1, 5.3.5f1, 5.3.5p1.

Cannot reproduce with:
5.4.0b18, because there are some compiler (related to namespace) errors that prevents user from entering the Play mode.
5.1.0f3. 5.2.4f1, because Scene Management is not supported.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.