Sebbo94BY / teamspeak-dynamic-banner

Show your TeamSpeak clients one or multiple dynamic banner images.
GNU General Public License v3.0
14 stars 2 forks source link

ServerQueryException(code: 1538): invalid parameter at vendor/planetteamspeak/ts3-php-framework/src/Adapter/ServerQuery/Reply.php:206 #12

Open Sebbo94BY opened 1 year ago

Sebbo94BY commented 1 year ago
[2023-04-12 22:00:59] production.ERROR: invalid parameter {"exception":"[object] (PlanetTeamSpeak\\TeamSpeak3Framework\\Exception\\ServerQueryException(code: 1538): invalid parameter at /var/www/teamspeak-dynamic-banner/laravel/vendor/planetteamspeak/ts3-php-framework/src/Adapter/ServerQuery/Reply.php:206)
[stacktrace]
#0 /var/www/teamspeak-dynamic-banner/laravel/vendor/planetteamspeak/ts3-php-framework/src/Node/Server.php(633): PlanetTeamSpeak\\TeamSpeak3Framework\\Adapter\\ServerQuery\\Reply->toAssocArray()
#1 /var/www/teamspeak-dynamic-banner/laravel/app/Http/Controllers/Helpers/BannerVariableController.php(87): PlanetTeamSpeak\\TeamSpeak3Framework\\Node\\Server->clientList()
#2 /var/www/teamspeak-dynamic-banner/laravel/app/Console/Commands/Instance/TeamspeakBot.php(210): App\\Http\\Controllers\\Helpers\\BannerVariableController->get_current_servergroup_list()
#3 [internal function]: App\\Console\\Commands\\Instance\\TeamspeakBot->updateServergroupList()
#4 /var/www/teamspeak-dynamic-banner/laravel/app/Console/Commands/Instance/TeamspeakBot.php(121): call_user_func()
#5 [internal function]: App\\Console\\Commands\\Instance\\TeamspeakBot->onWaitTimeout()
#6 /var/www/teamspeak-dynamic-banner/laravel/vendor/planetteamspeak/ts3-php-framework/src/Helper/Signal/Handler.php(77): call_user_func_array()
#7 /var/www/teamspeak-dynamic-banner/laravel/vendor/planetteamspeak/ts3-php-framework/src/Helper/Signal.php(75): PlanetTeamSpeak\\TeamSpeak3Framework\\Helper\\Signal\\Handler->call()
#8 /var/www/teamspeak-dynamic-banner/laravel/vendor/planetteamspeak/ts3-php-framework/src/Transport/Transport.php(271): PlanetTeamSpeak\\TeamSpeak3Framework\\Helper\\Signal->emit()
#9 /var/www/teamspeak-dynamic-banner/laravel/vendor/planetteamspeak/ts3-php-framework/src/Transport/TCP.php(152): PlanetTeamSpeak\\TeamSpeak3Framework\\Transport\\Transport->waitForReadyRead()
#10 /var/www/teamspeak-dynamic-banner/laravel/vendor/planetteamspeak/ts3-php-framework/src/Adapter/ServerQuery.php(140): PlanetTeamSpeak\\TeamSpeak3Framework\\Transport\\TCP->readLine()
#11 /var/www/teamspeak-dynamic-banner/laravel/vendor/planetteamspeak/ts3-php-framework/src/Node/Node.php(88): PlanetTeamSpeak\\TeamSpeak3Framework\\Adapter\\ServerQuery->request()
#12 /var/www/teamspeak-dynamic-banner/laravel/vendor/planetteamspeak/ts3-php-framework/src/Node/Server.php(99): PlanetTeamSpeak\\TeamSpeak3Framework\\Node\\Node->request()
#13 /var/www/teamspeak-dynamic-banner/laravel/vendor/planetteamspeak/ts3-php-framework/src/Node/Node.php(114): PlanetTeamSpeak\\TeamSpeak3Framework\\Node\\Server->request()
#14 /var/www/teamspeak-dynamic-banner/laravel/vendor/planetteamspeak/ts3-php-framework/src/Node/Server.php(1286): PlanetTeamSpeak\\TeamSpeak3Framework\\Node\\Node->execute()
#15 /var/www/teamspeak-dynamic-banner/laravel/app/Http/Controllers/Helpers/BannerVariableController.php(98): PlanetTeamSpeak\\TeamSpeak3Framework\\Node\\Server->serverGroupClientList()
#16 /var/www/teamspeak-dynamic-banner/laravel/app/Console/Commands/Instance/TeamspeakBot.php(210): App\\Http\\Controllers\\Helpers\\BannerVariableController->get_current_servergroup_list()
#17 [internal function]: App\\Console\\Commands\\Instance\\TeamspeakBot->updateServergroupList()
#18 /var/www/teamspeak-dynamic-banner/laravel/app/Console/Commands/Instance/TeamspeakBot.php(139): call_user_func()
#19 [internal function]: App\\Console\\Commands\\Instance\\TeamspeakBot->onEvent()
#20 /var/www/teamspeak-dynamic-banner/laravel/vendor/planetteamspeak/ts3-php-framework/src/Helper/Signal/Handler.php(77): call_user_func_array()
#21 /var/www/teamspeak-dynamic-banner/laravel/vendor/planetteamspeak/ts3-php-framework/src/Helper/Signal.php(75): PlanetTeamSpeak\\TeamSpeak3Framework\\Helper\\Signal\\Handler->call()
#22 /var/www/teamspeak-dynamic-banner/laravel/vendor/planetteamspeak/ts3-php-framework/src/Adapter/ServerQuery/Event.php(92): PlanetTeamSpeak\\TeamSpeak3Framework\\Helper\\Signal->emit()
#23 /var/www/teamspeak-dynamic-banner/laravel/vendor/planetteamspeak/ts3-php-framework/src/Adapter/ServerQuery.php(169): PlanetTeamSpeak\\TeamSpeak3Framework\\Adapter\\ServerQuery\\Event->__construct()
#24 /var/www/teamspeak-dynamic-banner/laravel/app/Console/Commands/Instance/TeamspeakBot.php(291): PlanetTeamSpeak\\TeamSpeak3Framework\\Adapter\\ServerQuery->wait()
#25 /var/www/teamspeak-dynamic-banner/laravel/app/Console/Commands/Instance/TeamspeakBot.php(331): App\\Console\\Commands\\Instance\\TeamspeakBot->start_bot()
#26 /var/www/teamspeak-dynamic-banner/laravel/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\\Console\\Commands\\Instance\\TeamspeakBot->handle()
#27 /var/www/teamspeak-dynamic-banner/laravel/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#28 /var/www/teamspeak-dynamic-banner/laravel/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\\Container\\Util::unwrapIfClosure()
#29 /var/www/teamspeak-dynamic-banner/laravel/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#30 /var/www/teamspeak-dynamic-banner/laravel/vendor/laravel/framework/src/Illuminate/Container/Container.php(661): Illuminate\\Container\\BoundMethod::call()
#31 /var/www/teamspeak-dynamic-banner/laravel/vendor/laravel/framework/src/Illuminate/Console/Command.php(194): Illuminate\\Container\\Container->call()
#32 /var/www/teamspeak-dynamic-banner/laravel/vendor/symfony/console/Command/Command.php(312): Illuminate\\Console\\Command->execute()
#33 /var/www/teamspeak-dynamic-banner/laravel/vendor/laravel/framework/src/Illuminate/Console/Command.php(163): Symfony\\Component\\Console\\Command\\Command->run()
#34 /var/www/teamspeak-dynamic-banner/laravel/vendor/symfony/console/Application.php(1022): Illuminate\\Console\\Command->run()
#35 /var/www/teamspeak-dynamic-banner/laravel/vendor/symfony/console/Application.php(314): Symfony\\Component\\Console\\Application->doRunCommand()
#36 /var/www/teamspeak-dynamic-banner/laravel/vendor/symfony/console/Application.php(168): Symfony\\Component\\Console\\Application->doRun()
#37 /var/www/teamspeak-dynamic-banner/laravel/vendor/laravel/framework/src/Illuminate/Console/Application.php(102): Symfony\\Component\\Console\\Application->run()
#38 /var/www/teamspeak-dynamic-banner/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(155): Illuminate\\Console\\Application->run()
#39 /var/www/teamspeak-dynamic-banner/laravel/artisan(35): Illuminate\\Foundation\\Console\\Kernel->handle()
#40 {main}
"}
Sebbo94BY commented 1 year ago

I've fixed this issue with a workaround, but I'll further investigate this issue in order to properly solve it. It will probably end with an issue and pull request in the TS3PHPFramework project.

Sebbo94BY commented 1 year ago

Seems like as it randomly gets cut in the middle of a client information response:

In Reply.php line 206:

  invalid parameter. ident 'clid' does not exist in node '{"que_identifier":"LNNnAkaslo54gS\/EiU0KjI+hs=","client_servergroups":"137,146,147,261","client_channel_group_id":13,"client_channel_group_inherited_channel_id":8576,"client_version":"3.5.6 [Build: 1606312422]","client_platform":"Linux","client_idle_time":944000689,"client_created":1684050726,"client_lastconnected":1691241636,"client_icon_id":0,"client_country":"DE","connection_client_ip":"fe80::42:d6ff:fe20:fd70","client_badges":null}'
Sebbo94BY commented 1 year ago

This is a reproducibe bug in the TS3PHPFramework: https://github.com/planetteamspeak/ts3phpframework/issues/209

Once this has been fixed and closed, we need to update the dependency in this project and then SSH connections will be fixed and working as expected here.

As workaround until then you can use the classic "RAW" connection, if you miss any required variables for your banner(s). If you don't miss any variables, you don't have to do anything except of waiting for the fix with an update.