#Weird (bad) behaviour joining lobbies from Chobby - fails to show lobby

1 messages · Page 1 of 1 (latest)

lean crater
#

I'm unable to jump between lobbies like I used to, sometimes the lobby doesn't open, it sometimes it makes the noise then nothing happens, othertimes it accepts the click coordinator updates but the lobby screen doesn't show etc

#

I get some console log errors when I do it while also already joined to a game

#
stack traceback:
    [string "libs/liblobby/lobby/observable.lua"]:102: in function '_PrintError'
    [string "libs/liblobby/lobby/observable.lua"]:78: in function <[string "libs/liblobby/lobby/observable.lua"]:78>
    [string "LuaMenu/Addons/base64.lua"]:22: in function 'rsh'
    [string "LuaMenu/Addons/base64.lua"]:68: in function 'Base64Decode'
    [string "LuaMenu/Widgets/gui_modoptions_panel.lua"]:592: in function 'tweakSummary'
    [string "LuaMenu/Widgets/gui_modoptions_panel.lua"]:622: in function 'OnSetModOptions'
    [string "LuaMenu/Widgets/gui_modoptions_panel.lua"]:655: in function 'Update'
    [string "LuaMenu/Widgets/gui_modoptions_panel.lua"]:795: in function 'GetModoptionsControl'
    [string "LuaMenu/Widgets/gui_battle_room_window.lua"]:1287: in function 'SetupInfoButtonsPanel'
    [string "LuaMenu/Widgets/gui_battle_room_window.lua"]:3093: in function 'InitializeControls'
    [string "LuaMenu/Widgets/gui_battle_room_window.lua"]:3900: in function 'eventListener'
    ...
    [string "libs/liblobby/lobby/interface_shared.lua"]:321: in function '_SocketUpdate'
    [string "libs/liblobby/lobby/interface_shared.lua"]:341: in function 'SafeUpdate'
    [string "libs/liblobby/lobby/interface_shared.lua"]:352: in function <[string "libs/liblobby/lobby/interface_shared.lua"]:352>
    [C]: in function 'xpcall'
    [string "libs/liblobby/lobby/interface_shared.lua"]:352: in function 'Update'
    [string "libs/liblobby/LuaMenu/widgets/api_lobby.lua"]:68: in function <[string "libs/liblobby/LuaMenu/widgets/api_lobby.lua"]:67>
    (tail call): ?
    [C]: in function 'pcall'
    [string "LuaHandler/Utilities/crashHandler.lua"]:50: in function 'f'
    [string "LuaHandler/Utilities/specialCallinHandlers.lua"]:80: in function <[string "LuaHandler/Utilities/specialCallinHandlers.lua"]:76>```
#

Once this error has happened, until I restart Chobby the lobby screen never appears, although Coordinator will inform me i have joined a lobby

storm oasis
#

perma happens to me and has for a while

warped plaza
#

i am suffering from a similar problem i get autokicked when trying to join a lobby with OS requirements I do not meet, then i can not join any other lobby

mint lark
#

@odd shoal

odd shoal
#

Hey, thanks for the logs 🙂

When a whole widget is not working anymore, it's usually caused by some uncatched errors, that lead to unloading that widget.
Suprisingly in this case nothing gets unloaded, but just keeps printing errors....

I can see 2 errors in the log:

  1. Server sent a wrong command pattern for ADDUSER
    [liblobby] Error: Failed to match command: , ADDUSER, , args: DiscordBridge 5388 with pattern: , (%S+)%s+(%S+)%s+(%S+)%s*(.*)
    But this shouldn't lead to the mentioned problem above. It's just sth. , that shouldn't happen. Here, it's just the DiscordBridge user, which may not be in use anyway...
    From the above message, we can close back the original Servermessage though debug mode is disabled:
    ADDUSER DiscordBridge 5388
    I did some logins and i always get the correct full command:
    ADDUSER DiscordBridge GB 5388 Teiserver Internal Client
    Imo this can't be a network error since chobby splits the received servermessages by \r . But i can't say for 100% sure.
    @pure cave If your time allows it, maybe have a look if it's possible for teiserver in any special case to leave these crazy gaps for the parameters at ADDUSER command. Above shows, that the 2nd parameter is missing (country) and 4th and 5th.
    Or just ask me me to add an issue for that... No prio
#
  1. The repeating error is initiated by a lobby, that was fed with invalid base64 encoded modoptions.
    It took me some time to test and narrow this down.
    The length of a base64 decoded string must be a multiple of 4 characters, but most of these NuttyB modoptions are not valid.
    Chobby's implementation of base64 decode tries to compensate the missing = or == but fails, if exactly 1 is missing. It works for missing ==.
    After reading into base64 decoding/encoding and trying to fix that behaviour, i finally saw, that this issue was fixed long ago in the base game. So we are lucky, and i'll just copy over the better base64 implementation from the core game to chobby 🙂

Anyway: The origin of this problem should be a shortened base64 string, where the trailing = characters are missing.
Although above fix will do, i'd like to ask the owners of NuttyB Raptors to change their page to print valid base64 strings:
Maybe @thick compass ?

odd shoal
lean crater
odd shoal
pure cave
#

@odd shoal yeah please create an issue in teiserver github. Thanks.

#

@lost gorge actually did a PR in the past to not allow spaces in flags. But I wonder if there were existing users with invalid countries.

lost gorge
pure cave
#

Actually looking at the logs above it's the DiscordBridge with the wrong country.

odd shoal
#

While testing, i could reproduce this behaviour.
In my case VFS couldn't find the file modoptions.lua (i guess the one from game)
I was leaving a lobby and joining the same one again.
Though we might fix some other problems, the core problem here seems to be not solved yet 😦

lean crater
#

@lost gorge @odd shoal this or something extremely close too it is happening again

mint lark
#

[t=00:00:59.641272][f=0019123] LoginWindowHandler.TryLoginMultiplayer, nil, nil

#

oh hello again

#

this is probably the 'silent logout behind everything' bug I keep encountering lately