This is more complicated than it seems cause it needs to be capable of catching all edge cases, you not being in a group when joining a queue, joining a group when already in a group, ..., the main issue here is that you shouldn't be able to join a custom / ladder game while in queue. This state needs to be maintained consitently and should never fail, cause that would mean you're not in a queue but blocked from a custom game, this might persist across client restarts as the server will think the client is reconnecting and will mark you as back in the game as the ice adapter normally attempts a reconnect.