Photon Bolt ServerList/Lobby problem



I have the following issue with Photon Bolt.. I host a server with photon bolt, then i quit the game.

No matter what and how i try, that server which was obviously shut down, or is being shut down, still appears in the session list for the clients. If they try to join, they obviously cant, resulting in an error.

Repro steps:

  1. Prepare 2 instance of the game
  2. Host a game on instance1
  3. List the servers on instance2
  4. Close the whole game on instance1
  5. Notice that the server is still listed on instance2 for at least 5 seconds...Or whatever that magical update number is.

My question is:

Is there any way to get around this? I can even host a game, shut it down by the BoltNetwork.Shutdown(); function. Go back to the main menu, where that server is STILL LISTED, and try to join that game which i have called the Shutdown in...

I have written also in the photon DC channel but they are "on it" since..

Any help or workaround is appreciated!


Right now, if i want to shut it down, i use the following code, which fixes the issue IF the user closes the game with the UI button. But the above described issue still occurs if they just quit with alt+F4 for example or just stops it from the editor.

  1. [ContextMenu("Shutdown")]
  2.      public void Shutdown()
  3.      {
  4.       UpdateSessionToShutdown();
  5.      }
  7.      [ContextMenu("UpdateSessionToShutdown")]
  8.      private void UpdateSessionToShutdown()
  9.      {
  10.       ServerInfo serverInfoOld = BoltMatchmaking.CurrentSession.GetProtocolToken() as ServerInfo;
  12.       ServerInfo serverInfoNew = new ServerInfo();
  13.       serverInfoNew.GameStarted = true;
  14.       serverInfoNew.Nickname = serverInfoOld.Nickname;
  15.       serverInfoNew.ServerName = serverInfoOld.ServerName;
  16.       serverInfoNew.IsShuttingDown = true;
  18.       BoltMatchmaking.UpdateSession(serverInfoNew);
  19.      }
  21.   public override void SessionCreatedOrUpdated(UdpSession session)
  22.      {
  23.        if (session.Id != BoltMatchmaking.CurrentSession.Id) return;
  25.       ServerInfo serverInfo = BoltMatchmaking.CurrentSession.GetProtocolToken() as ServerInfo;
  26.        if (serverInfo.IsShuttingDown)
  27.         BoltNetwork.Shutdown();
  28.      }