[Bug Report] "Malformed player data" error with cross-platform console players
You understand that if you dont provide clear information on your "Problem", "Software and Hardware-Setup" and the "Steps to reproduce" your issue will be closed without any help, because your not willing to do your part?
- [x] Yes i do!
You understand that im not a Game-Dev or Game-Server-Dev and my support is primary for the Docker-Image and somewhat limited to the Game-Server?
- [x] Yes i do!
Current behavior
Hi,
I hope you're having a good day. I'm reporting an issue I've encountered while using the latest container with cross-platform play enabled. When a cross-platform console player connects to the server, the following error message starts looping in the logs:
[2025-04-23 07:04:51] [LOG] RCON executed the command. showplayers
/includes/playerdetection.sh: line 23: warning: command substitution: ignored null byte in input
Error: Malformed player data: 'xxxxx,xxxxxxxx0000000000000000000'
(Note: Sensitive information has been replaced with xxxxx for privacy.)
After this player leaves the server, the error message continues to loop, sometimes preceded by the "player left" log:
[2025-04-23 07:33:10] [LOG] xxxxx left the server. (User id: xxxxxxxxxxx)
[2025-04-23 07:33:14] [LOG] RCON executed the command. showplayers
Error: Malformed player data: 'xxxxx,xxxxxxxx0000000000000000000'
[2025-04-23 07:33:29] [LOG] RCON executed the command. showplayers
Error: Malformed player data: 'xxxxx,xxxxxxxx0000000000000000000'
If I use docker exec palworld-dedicated-server rconcli showplayers
The log only shows with no error:
[2025-04-23 09:51:17] [LOG] RCON executed the command. showplayers
Desired behavior
A fix would be great to resolve the issue. If a direct fix isn't immediately feasible, perhaps there's a way to suppress or reduce the logging frequency of this specific error to prevent log spam.
Thanks for your hard work!
Links to screenshots
No response
Steps to reproduce
Steps to reproduce the behavior:
- use docker compose up.
- wait xbox/ps player join this game.
Software setup
- OS: debian 12
- Docker: 27
Hardware setup
- vCPU: 8
- RAM: 32G
Additional context
No response
I found it is the rcon cannot show player name with none-ascii chars like Japanese、Chinese
Hello @miguelrjim - Interesting, can you give me like a username to debug and test this please? Im not sure what we ware talking about here and how to reproduce that error to be honest.
I'm sorry, I accidentally clicked on 'close issue'.
This is the full log of this player between joined and left server. "火力王" is the username.
[2025-04-28 09:34:08] [LOG] RCON executed the command. showplayers
[2025-04-28 09:34:23] [LOG] RCON executed the command. showplayers
[2025-04-28 09:34:32] [LOG] 火力王 111.0.239.206 connected the server. (User id: steam_xxxxxxx)
[2025-04-28 09:34:38] [LOG] 火力王 executed the command. showplayers
[2025-04-28 09:34:39] [LOG] 火力王 joined the server. (User id: steam_xxxxxxx)
/includes/playerdetection.sh: line 23: warning: command substitution: ignored null byte in input
[2025-04-28 09:35:03] [LOG] RCON executed the command. showplayers
/includes/playerdetection.sh: line 23: warning: command substitution: ignored null byte in input
[2025-04-28 09:35:28] [LOG] RCON executed the command. showplayers
/includes/playerdetection.sh: line 23: warning: command substitution: ignored null byte in input
[2025-04-28 09:35:53] [LOG] RCON executed the command. showplayers
/includes/playerdetection.sh: line 23: warning: command substitution: ignored null byte in input
[2025-04-28 09:36:18] [LOG] RCON executed the command. showplayers
/includes/playerdetection.sh: line 23: warning: command substitution: ignored null byte in input
[2025-04-28 09:36:43] [LOG] RCON executed the command. showplayers
/includes/playerdetection.sh: line 23: warning: command substitution: ignored null byte in input
[2025-04-28 09:37:08] [LOG] RCON executed the command. showplayers
/includes/playerdetection.sh: line 23: warning: command substitution: ignored null byte in input
[2025-04-28 09:37:32] [LOG] 火力王 left the server. (User id: steam_xxxxxxx)
[2025-04-28 09:37:33] [LOG] RCON executed the command. showplayers
[2025-04-28 09:37:48] [LOG] RCON executed the command. showplayers
[2025-04-28 09:38:03] [LOG] RCON executed the command. showplayers
[2025-04-28 09:38:18] [LOG] RCON executed the command. showplayers
Hmmmm, the error is in execution rcon showplayers see here: https://github.com/jammsen/docker-palworld-dedicated-server/blob/develop/includes/playerdetection.sh#L23
You could enable RCON_PLAYER_DEBUG and set it to true and see what the command and output looks like, i might just be that the rcon-tool cant handle "any" characters as a return value.
[2025-04-29 02:40:19] [LOG] RCON executed the command. showplayers
Debug: command_output = 'name,playeruid,steamid'
Exitcode was: 0
Debug: No player data available.
Debug: current_players = Acedia,XXXEBXXX000000000000000000000000,xxxxxxxxxxxxxx
For-Loop-Debug: player_info = 'Acedia,XXXEBXXX000000000000000000000000,xxxxxxxxxxxxxx'
[2025-04-29 02:40:24] [LOG] 多杰1986 xxx.xxx.xxx.xxx connected the server. (User id: steam_xxxxxxxxxxxxxx)
[2025-04-29 02:40:27] [LOG] 多杰 joined the server. (User id: steam_xxxxxxxxxxxxxx)
[2025-04-29 02:41:19] [LOG] RCON executed the command. showplayers
/includes/playerdetection.sh: line 23: warning: command substitution: ignored null byte in input
Debug: command_output = 'name,playeruid,steamid
多杰,XXXA3XXX000000000000000000000000,xxxxxxxxxxxxxx'
Exitcode was: 0
Debug: current_players = 多杰,XXXA3XXX000000000000000000000000,xxxxxxxxxxxxxx
Debug: current_players = 多杰,XXXA3XXX000000000000000000000000,xxxxxxxxxxxxxx
For-Loop-Debug: player_info = '多杰,XXXA3XXX000000000000000000000000,xxxxxxxxxxxxxx'
[02:41:29]: Player has joined the server.
[2025-04-29 02:41:29] [LOG] RCON executed the command. broadcast [02:41:29] joined the server
cli: execute: rcon: read tcp 127.0.0.1:50222->127.0.0.1:25575: i/o timeout
> RCON: Broadcasted: [02:41:29] joined the ser
[02:41:39]: Player Acedia has left the server.
[2025-04-29 02:41:39] [LOG] RCON executed the command. broadcast [02:41:39] Acedia left the server
cli: execute: rcon: read tcp 127.0.0.1:35002->127.0.0.1:25575: i/o timeout
> RCON: Broadcasted: [02:41:39] Acedia left the ser
[2025-04-29 02:42:34] [LOG] 多杰 left the server. (User id: steam_xxxxxxxxxxxxxx)
[2025-04-29 02:42:49] [LOG] RCON executed the command. showplayers
Logs with the RCON_PLAYER_DEBUG=true
(Note: Sensitive information has been replaced with xxxxx for privacy.)
[2025-04-29 15:41:35] [LOG] RCON executed the command. showplayers
[2025-04-29 15:41:40] [LOG] 浮生丨半日闲 xxx.xxx.xxx.xxx connected the server. (User id: steam_xxxx119xxxx08xxxx)
/includes/playerdetection.sh: line 23: warning: command substitution: ignored null byte in input
Debug: command_output = 'name,playeruid,steamid
火力王,xxx43xxx000000000000000000000000,xxx61199xxxx'
Exitcode was: 0
Debug: current_players = 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx
Debug: current_players = 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx
For-Loop-Debug: player_info = '火力王,xxx43xxx000000000000000000000000,xxx61199xxxx'
[2025-04-29 15:41:54] [LOG] 浮生丨半日闲 joined the server. (User id: steam_xxxx119xxxx08xxxx)
[2025-04-29 15:42:45] [LOG] RCON executed the command. showplayers
/includes/playerdetection.sh: line 23: warning: command substitution: ignored null byte in input
Debug: command_output = 'name,playeruid,steamid
火力王,xxx43xxx000000000000000000000000,xxx61199xxxx47605
浮生丨半日闲,XXX54XXX000000000000000000000000,'
Exitcode was: 0
Debug: current_players = 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx47605 浮生丨半日闲,XXX54XXX000000000000000000000000,
Debug: current_players = 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx47605 浮生丨半日闲,XXX54XXX000000000000000000000000,
For-Loop-Debug: player_info = '火力王,xxx43xxx000000000000000000000000,xxx61199xxxx47605'
[15:42:55]: Player has joined the server.
[2025-04-29 15:42:55] [LOG] RCON executed the command. broadcast [15:42:55] joined the server
cli: execute: rcon: read tcp 127.0.0.1:36498->127.0.0.1:25575: i/o timeout
> RCON: Broadcasted: [15:42:55] joined the ser
For-Loop-Debug: player_info = '浮生丨半日闲,XXX54XXX000000000000000000000000,'
Error: Malformed player data: '浮生丨半日闲,XXX54XXX000000000000000000000000,'
[15:43:05]: Player has left the server.
[2025-04-29 15:43:05] [LOG] RCON executed the command. broadcast [15:43:05] left the server
cli: execute: rcon: read tcp 127.0.0.1:55638->127.0.0.1:25575: i/o timeout
> RCON: Broadcasted: [15:43:05] left the ser
[2025-04-29 15:44:15] [LOG] RCON executed the command. showplayers
/includes/playerdetection.sh: line 23: warning: command substitution: ignored null byte in input
Debug: command_output = 'name,playeruid,steamid
火力王,xxx43xxx000000000000000000000000,xxx61199xxxx47605
浮生丨半日闲,XXX54XXX000000000000000000000000,'
Exitcode was: 0
Debug: current_players = 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx47605 浮生丨半日闲,XXX54XXX000000000000000000000000,
Debug: current_players = 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx47605 浮生丨半日闲,XXX54XXX000000000000000000000000,
For-Loop-Debug: player_info = '火力王,xxx43xxx000000000000000000000000,xxx61199xxxx47605'
For-Loop-Debug: player_info = '浮生丨半日闲,XXX54XXX000000000000000000000000,'
Error: Malformed player data: '浮生丨半日闲,XXX54XXX000000000000000000000000,'
[2025-04-29 15:45:10] [LOG] 浮生丨半日闲 left the server. (User id: steam_xxxx119xxxx08xxxx)
[2025-04-29 15:45:25] [LOG] RCON executed the command. showplayers
/includes/playerdetection.sh: line 23: warning: command substitution: ignored null byte in input
Debug: command_output = 'name,playeruid,steamid
火力王,xxx43xxx000000000000000000000000,xxx61199xxxx'
Exitcode was: 0
Debug: current_players = 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx
Debug: current_players = 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx
For-Loop-Debug: player_info = '火力王,xxx43xxx000000000000000000000000,xxx61199xxxx'
[15:45:35]: Player has joined the server.
[2025-04-29 15:45:35] [LOG] RCON executed the command. broadcast [15:45:35] joined the server
cli: execute: rcon: read tcp 127.0.0.1:39804->127.0.0.1:25575: i/o timeout
> RCON: Broadcasted: [15:45:35] joined the ser
[15:45:45]: Player has left the server.
[2025-04-29 15:45:45] [LOG] RCON executed the command. broadcast [15:45:45] left the server
cli: execute: rcon: read tcp 127.0.0.1:59974->127.0.0.1:25575: i/o timeout
> RCON: Broadcasted: [15:45:45] left the ser
Another logs here.
[2025-04-29 15:41:35] [LOG] RCON executed the command. showplayers [2025-04-29 15:41:40] [LOG] 浮生丨半日闲 xxx.xxx.xxx.xxx connected the server. (User id: steam_xxxx119xxxx08xxxx) /includes/playerdetection.sh: line 23: warning: command substitution: ignored null byte in input Debug: command_output = 'name,playeruid,steamid 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx' Exitcode was: 0 Debug: current_players = 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx Debug: current_players = 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx For-Loop-Debug: player_info = '火力王,xxx43xxx000000000000000000000000,xxx61199xxxx' [2025-04-29 15:41:54] [LOG] 浮生丨半日闲 joined the server. (User id: steam_xxxx119xxxx08xxxx) [2025-04-29 15:42:45] [LOG] RCON executed the command. showplayers /includes/playerdetection.sh: line 23: warning: command substitution: ignored null byte in input Debug: command_output = 'name,playeruid,steamid 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx47605 浮生丨半日闲,XXX54XXX000000000000000000000000,' Exitcode was: 0 Debug: current_players = 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx47605 浮生丨半日闲,XXX54XXX000000000000000000000000, Debug: current_players = 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx47605 浮生丨半日闲,XXX54XXX000000000000000000000000, For-Loop-Debug: player_info = '火力王,xxx43xxx000000000000000000000000,xxx61199xxxx47605' [15:42:55]: Player has joined the server. [2025-04-29 15:42:55] [LOG] RCON executed the command. broadcast [15:42:55] joined the server cli: execute: rcon: read tcp 127.0.0.1:36498->127.0.0.1:25575: i/o timeout > RCON: Broadcasted: [15:42:55] joined the ser For-Loop-Debug: player_info = '浮生丨半日闲,XXX54XXX000000000000000000000000,' Error: Malformed player data: '浮生丨半日闲,XXX54XXX000000000000000000000000,' [15:43:05]: Player has left the server. [2025-04-29 15:43:05] [LOG] RCON executed the command. broadcast [15:43:05] left the server cli: execute: rcon: read tcp 127.0.0.1:55638->127.0.0.1:25575: i/o timeout > RCON: Broadcasted: [15:43:05] left the ser [2025-04-29 15:44:15] [LOG] RCON executed the command. showplayers /includes/playerdetection.sh: line 23: warning: command substitution: ignored null byte in input Debug: command_output = 'name,playeruid,steamid 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx47605 浮生丨半日闲,XXX54XXX000000000000000000000000,' Exitcode was: 0 Debug: current_players = 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx47605 浮生丨半日闲,XXX54XXX000000000000000000000000, Debug: current_players = 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx47605 浮生丨半日闲,XXX54XXX000000000000000000000000, For-Loop-Debug: player_info = '火力王,xxx43xxx000000000000000000000000,xxx61199xxxx47605' For-Loop-Debug: player_info = '浮生丨半日闲,XXX54XXX000000000000000000000000,' Error: Malformed player data: '浮生丨半日闲,XXX54XXX000000000000000000000000,' [2025-04-29 15:45:10] [LOG] 浮生丨半日闲 left the server. (User id: steam_xxxx119xxxx08xxxx) [2025-04-29 15:45:25] [LOG] RCON executed the command. showplayers /includes/playerdetection.sh: line 23: warning: command substitution: ignored null byte in input Debug: command_output = 'name,playeruid,steamid 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx' Exitcode was: 0 Debug: current_players = 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx Debug: current_players = 火力王,xxx43xxx000000000000000000000000,xxx61199xxxx For-Loop-Debug: player_info = '火力王,xxx43xxx000000000000000000000000,xxx61199xxxx' [15:45:35]: Player has joined the server. [2025-04-29 15:45:35] [LOG] RCON executed the command. broadcast [15:45:35] joined the server cli: execute: rcon: read tcp 127.0.0.1:39804->127.0.0.1:25575: i/o timeout > RCON: Broadcasted: [15:45:35] joined the ser [15:45:45]: Player has left the server. [2025-04-29 15:45:45] [LOG] RCON executed the command. broadcast [15:45:45] left the server cli: execute: rcon: read tcp 127.0.0.1:59974->127.0.0.1:25575: i/o timeout > RCON: Broadcasted: [15:45:45] left the serAnother logs here.
I cant repdroduce the error without solid and real testing data, i understand you dont want to post user-ids on issue on GitHub but then please join the discord and DM me the real data of 2-3 persons so i can write some fake-testing data und try it myself.
Discord Invite Link is in the Readme.md