After the controller sends a server to join, the spectator will never stop trying to join it - even when the server went offline or cannot be joined e.g. because of a OS level IP ban.
Even worse: Because the spectator never joins the server, the controller never starts the timer for selecting a new server. Meaning the controller does not get the spectator unstuck, it will keep trying the current join server until someone manually intervenes.
Solution might be to simply keep track of server join attempts and communicate issues back to the controller so it can select a different server.
After the controller sends a server to join, the spectator will never stop trying to join it - even when the server went offline or cannot be joined e.g. because of a OS level IP ban.
Even worse: Because the spectator never joins the server, the controller never starts the timer for selecting a new server. Meaning the controller does not get the spectator unstuck, it will keep trying the current join server until someone manually intervenes.
Solution might be to simply keep track of server join attempts and communicate issues back to the controller so it can select a different server.