I’ve followed the new networking example projects (NetworkStarter, tanks etc), and it works OK. But when the client cancels a connect operation in matchmaker, afterwards the client cannot join any more games.
This happens in the NetworkStarter example as well as my own code. To reproduce, host a matchmaker game on the server, try to join it on the client side, and when you click on the match name, immediately click cancel. Trying to join the same game again fails.
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-runtime-and-classlibs/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:962) UnityEngine.Networking.Match.NetworkMatch+<ProcessMatchResponse>c__Iterator0`1[UnityEngine.Networking.Match.JoinMatchResponse].MoveNext () (at C:/buildslave/unity/build/Runtime/Networking/Managed/MatchMakingClient.cs:306)
It looks like it should be removing the access token for the network when the cancel happens (this is set in LobbyManager.OnMatchJoined) but there doesn’t seem to be an unset of this at disconnect in the LobbyManager. Is there a call I should make here, or is it something that should be raised?