When the server fails to validate the ownership of a character like wormwood upon resumption of a character save it wipes the player's save and character files. The validation seems to fail during extreme network load and latency. I believe the exception handling for this needs to be addressed as a laggy server can potentially wipe player saves. The solution for a failed validation of an existing character save file it should just refuse the connection.
Note: This bug happened with a server that was having a very hard time sending and receiving data. Although a server with good connection will probably never run into this issue it's worth considering a fix
Below is where the problem happened. I used a few commands trying to diagnose the issue but nothing involving the network.
[00:24:31]: New incoming connection 187.188.32.81|10289 <6585700288773544555>
[00:24:31]: Client connected from 187.188.32.81|10289 <6585700288773544555>
[00:24:31]: ValidateGameSessionToken pgs-usc^KU_AQbLN3PW^DontStarveTogether^vn7HD5ZYHKdzaI/9w5NBk1yX1Kr9njhRh3ksSryRjY0= for <6585700288773544555>
[00:24:31]: Client authenticated: (KU_AQbLN3PW) Thing (1)
[00:24:32]: [Steam] SendUserConnectAndAuthenticate for '76561198069153857'
[00:24:32]: [Steam] Authenticated client '76561198069153857'
[00:24:34]: There is no active event to validate against.
[00:24:34]: [Shard] Read save location file for (KU_AQbLN3PW)
[00:24:34]: Registering master server in US lobby
[00:25:47]: Resuming user: session/5B6A0768B82111BD/A7H9L5ALODJ0/0000000188
[00:25:47]: Spawning player at: [Load] (-422.47, -0.00, 606.72)
[00:25:47]: Registering master server in US lobby
[00:25:56]: [Steam] SendUserDisconnect for '76561198069153857'
[00:25:56]: Connection lost to 187.188.32.81|10289 <6585700288773544555>
[00:25:56]: [Shard] (KU_AQbLN3PW) disconnected from [SHDMASTER](1)
[00:25:56]: Serializing user: session/5B6A0768B82111BD/A7H9L5ALODJ0/0000000189
[00:25:57]: Registering master server in US lobby
[00:25:58]: Available disk space for save files: 299879 MB
[00:25:59]: Serializing user: session/5B6A0768B82111BD/A7ND9K84IQTE/0000000189
[00:25:59]: Serializing world: session/5B6A0768B82111BD/0000000189
[00:26:07]: Registering master server in US lobby
[00:26:19]: Stale Component Reference: GUID 127571, scripts/entityscript.lua:1065
[00:26:54]: [P2P] Session request for '76561198069153857'
[00:26:56]: [P2P] Create session: 136.116.248.213|1 '76561198069153857'
[00:26:56]: [P2P] Received from 136.116.248.213|1 '76561198069153857'
[00:26:56]: [P2P] Sent to 136.116.248.213|1 '76561198069153857'
[00:26:57]: New incoming connection 187.188.32.81|10399 <1551215571931736044>
[00:26:57]: Client connected from 187.188.32.81|10399 <1551215571931736044>
[00:26:57]: ValidateGameSessionToken pgs-usc^KU_AQbLN3PW^DontStarveTogether^UgMVi8JNUWa5yDpKk3ofb1qz2MecXBGKiCtlVNNYTs0= for <1551215571931736044>
[00:27:04]: CURL ERROR: (dst.metrics.klei.com) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
[00:27:04]: CURL ERROR: (dst.metrics.klei.com) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
[00:27:19]: CURL ERROR: (dst.metrics.klei.com) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
[00:27:45]: [Steam] SendUserDisconnect for '76561198069153857'
[00:27:52]: New incoming connection 187.188.32.81|10427 <5781605786599825096>
[00:27:52]: Client connected from 187.188.32.81|10427 <5781605786599825096>
[00:27:52]: ValidateGameSessionToken pgs-usc^KU_AQbLN3PW^DontStarveTogether^+EtQaGYFrHd6z2BDp7ITSgaBMUTqioZOdQFCf7C+0RY= for <5781605786599825096>
[00:27:53]: Client authenticated: (KU_AQbLN3PW) Thing (1)
[00:27:54]: [Steam] SendUserConnectAndAuthenticate for '76561198069153857'
[00:27:54]: [Steam] Authenticated client '76561198069153857'
[00:29:06]: CURL ERROR: (items.kleientertainment.com) Operation too slow. Less than 5 bytes/sec transferred the last 60 seconds
[00:29:06]: [Warning] The connection to the inventory server has failed.
[00:29:06]: Inventory validation failed for (KU_AQbLN3PW)
[00:29:06]: There is no active event to validate against.
[00:29:06]: [Shard] Read save location file for (KU_AQbLN3PW)
[00:29:13]: Registering master server in US lobby
[00:29:13]: CURL ERROR: (dst.metrics.klei.com) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
[00:30:07]: [200] Account Communication Success (6)
[00:30:07]: Received (KU_-OlmDppl) from TokenPurpose
[00:30:20]: Resuming user: session/5B6A0768B82111BD/A7H9L5ALODJ0/0000000189
[00:30:20]: Invalid resume prefab request. Ownership check of wormwood failed for KU_AQbLN3PW
[00:32:05]: CURL ERROR: (dst.metrics.klei.com) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
[00:32:11]: [Steam] SendUserDisconnect for '76561198069153857'
[00:32:11]: [Shard] (KU_AQbLN3PW) disconnected from [SHDMASTER](1)
[00:32:18]: Registering master server in US lobby
[00:32:22]: CURL ERROR: (dst.metrics.klei.com) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
[00:33:52]: New incoming connection 187.188.32.81|10519 <5409955910544389850>
[00:33:52]: Client connected from 187.188.32.81|10519 <5409955910544389850>
[00:33:52]: ValidateGameSessionToken pgs-usc^KU_AQbLN3PW^DontStarveTogether^saobTQbGXJji6oKmipqXSgIGV0T50EtIKQYCRWchNmQ= for <5409955910544389850>
[00:33:59]: Available disk space for save files: 299867 MB
[00:33:59]: Serializing user: session/5B6A0768B82111BD/A7ND9K84IQTE/0000000190
[00:34:00]: Serializing world: session/5B6A0768B82111BD/0000000190
[00:34:08]: Registering master server in US lobby
[00:34:52]: CURL ERROR: (login.kleientertainment.com) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
[00:34:52]: [ValidateGameSessionTokenResponse] Network Failure (0)
[00:34:52]: CloseConnectionWithReason: ID_DST_GAME_SESSION_AUTH_FAILED
[00:34:52]: [Steam] SendUserDisconnect for '76561198069153857'
[00:35:04]: New incoming connection 187.188.32.81|10542 <2996679449246404904>
[00:35:04]: Client connected from 187.188.32.81|10542 <2996679449246404904>
[00:35:04]: ValidateGameSessionToken pgs-usc^KU_AQbLN3PW^DontStarveTogether^xs2XAiFPRWrvck/TrV51YMZY+ENkcNlvx5mrDIqon3M= for <2996679449246404904>
[00:35:04]: [P2P] Received from 136.116.248.213|1 '76561198069153857'
[00:35:04]: [P2P] Sent to 136.116.248.213|1 '76561198069153857'
[00:35:15]: [Steam] SendUserDisconnect for '76561198069153857'
[00:36:04]: CURL ERROR: (login.kleientertainment.com) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
[00:36:04]: [ValidateGameSessionTokenResponse] Network Failure (0)
[00:36:04]: CloseConnectionWithReason: ID_DST_GAME_SESSION_AUTH_FAILED
[00:37:05]: CURL ERROR: (dst.metrics.klei.com) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
[00:37:05]: CURL ERROR: (dst.metrics.klei.com) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
[00:37:54]: New incoming connection 68.231.93.38|60025 <724863791879979198>
[00:37:54]: Client connected from 68.231.93.38|60025 <724863791879979198>
[00:37:54]: ValidateGameSessionToken pgs-usc^KU_UpWWkB0e^DontStarveTogether^2ZGZcKLQmXs/kJUiWo8JMy51CI1brCftAQMoCRv7ols= for <724863791879979198>
[00:38:22]: Client authenticated: (KU_UpWWkB0e) Redakted
[00:38:22]: [Steam] SendUserConnectAndAuthenticate for '76561198156260882'
[00:38:22]: [Steam] Authenticated client '76561198156260882'
[00:38:26]: There is no active event to validate against.
[00:38:26]: [Shard] Read save location file for (KU_UpWWkB0e)
[00:38:28]: Registering master server in US lobby
[00:38:44]: Resuming user: session/5B6A0768B82111BD/A7JR70GBHC18/0000000187
[00:38:44]: Spawning player at: [Load] (-412.98, 0.00, 608.22)
[00:38:44]: Registering master server in US lobby
[00:39:05]: [(KU_UpWWkB0e) Redakted] ReceiveRemoteExecute(local p = UserToPlayer('KU_UpWWkB0e') local me = UserToPlayer("KU_UpWWkB0e") if p and me then local function SetGodeMode() if p.components.health and me.components.talker then local mode = p.components.health.invincible me.components.talker:Say(mode and STRINGS.UI.MODSSCREEN.STATUS.DISABLED_MANUAL or STRINGS.UI.MODSSCREEN.STATUS.WORKING_NORMALLY) p.components.health:SetInvincible(not mode) end end if p:HasTag("playerghost") then p:PushEvent("respawnfromghost") p:DoTaskInTime(1, SetGodeMode) else SetGodeMode() end end) @(-403.79, 605.86)
[00:39:37]: New incoming connection 187.188.32.81|10660 <5771939551413519369>
[00:39:37]: Client connected from 187.188.32.81|10660 <5771939551413519369>
[00:39:37]: ValidateGameSessionToken pgs-usc^KU_AQbLN3PW^DontStarveTogether^ux2Nn2dnpxunqwdLWNAAbtA2r+ra5+LO75OC3jXnAks= for <5771939551413519369>
[00:40:37]: CURL ERROR: (login.kleientertainment.com) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
[00:40:37]: [ValidateGameSessionTokenResponse] Network Failure (0)
[00:40:37]: CloseConnectionWithReason: ID_DST_GAME_SESSION_AUTH_FAILED
[00:40:37]: [Steam] SendUserDisconnect for '76561198069153857'
[00:40:50]: New incoming connection 187.188.32.81|10675 <3945442600892668432>
[00:40:50]: Client connected from 187.188.32.81|10675 <3945442600892668432>
[00:40:50]: ValidateGameSessionToken pgs-usc^KU_AQbLN3PW^DontStarveTogether^eXlHe7UXWpx7kJZtJJV6R+4RJT3x38kYH6oD8TYp/kw= for <3945442600892668432>
[00:40:51]: Client authenticated: (KU_AQbLN3PW) Thing (1)
[00:40:52]: [Steam] SendUserConnectAndAuthenticate for '76561198069153857'
[00:40:52]: [Steam] Authenticated client '76561198069153857'
[00:41:52]: CURL ERROR: (items.kleientertainment.com) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
[00:41:52]: [Warning] The connection to the inventory server has failed.
[00:41:52]: Inventory validation failed for (KU_AQbLN3PW)
[00:41:52]: There is no active event to validate against.
[00:41:52]: [Shard] Read save location file for (KU_AQbLN3PW)
[00:41:52]: Registering master server in US lobby
[00:41:59]: CURL ERROR: (dst.metrics.klei.com) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
[00:42:00]: Available disk space for save files: 299855 MB
[00:42:00]: Serializing user: session/5B6A0768B82111BD/A7ND9K84IQTE/0000000191
[00:42:00]: Serializing user: session/5B6A0768B82111BD/A7JR70GBHC18/0000000191
[00:42:01]: Serializing world: session/5B6A0768B82111BD/0000000191
[00:42:02]: Registering master server in US lobby
[00:42:05]: CURL ERROR: (dst.metrics.klei.com) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
[00:42:05]: CURL ERROR: (dst.metrics.klei.com) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
[00:42:05]: CURL ERROR: (dst.metrics.klei.com) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
[00:42:13]: Resuming user: session/5B6A0768B82111BD/A7H9L5ALODJ0/0000000189
[00:42:13]: Invalid resume prefab request. Ownership check of wormwood failed for KU_AQbLN3PW
[00:42:31]: [(KU_UpWWkB0e) Redakted] ReceiveRemoteExecute(local player = LookupPlayerInstByUserID('KU_AQbLN3PW') if player then if player.components.inventory then player.components.inventory:DropEverything() end if not TheWorld:HasTag('cave') then player:PushEvent('ms_playerreroll') TheWorld.admin_save = TheWorld.admin_save or {} TheWorld.admin_save[player.userid] = player.SaveForReroll and player:SaveForReroll() if TheWorld.admin_listen == nil then TheWorld.admin_listen = TheWorld:ListenForEvent('ms_newplayerspawned', function(world, p) if world.admin_save[p.userid] and p.LoadForReroll then p:LoadForReroll(world.admin_save[p.userid]) world.admin_save[p.userid] = nil end end) end end TheWorld:PushEvent('ms_playerdespawnanddelete', player) else local cave = GetClosestInstWithTag('migrator', ThePlayer, 1000) c_goto(cave) end) @(-399.86, 594.07)
[00:42:31]: [(KU_UpWWkB0e) Redakted] ReceiveRemoteExecute(local player = LookupPlayerInstByUserID('KU_AQbLN3PW') if player then local name = player.name or 'N/A' TheNet:Announce(subfmt("{name} was rerolled", {name=name:match('^[^\n\v\f\r]*'):sub(1,20)}), ThePlayer.entity, nil, 'default') end) @(-399.86, 594.07)
[00:42:37]: [(KU_UpWWkB0e) Redakted] ReceiveRemoteExecute(local player = LookupPlayerInstByUserID('KU_xKqGIMkk') if player then if ThePlayer.Physics then ThePlayer.Physics:Teleport(player.Transform:GetWorldPosition()) else ThePlayer.Transform:SetPosition(player.Transform:GetWorldPosition()) end else local cave = GetClosestInstWithTag('migrator', ThePlayer, 1000) c_goto(cave) end) @(-226.47, 726.71)
[00:44:29]: Spawn request: warly from Thing (1)
[00:44:29]: Skin request: (warly_ice) (body_warly_ice) (hand_warly_candyman) (legs_warly_candyman) (feet_warly_candyman)
[00:44:29]: Invalid spawn request, defaulting to warly
[00:44:29]: Spawning player at: [Fixed] (254.00, 0.00, 106.00)
[00:44:29]: Serializing user: session/5B6A0768B82111BD/A7H9L5ALODJ0/0000000192
[00:44:29]: Registering master server in US lobby
[00:45:04]: [P2P] Session timed out for '76561198069153857'
[00:45:04]: [P2P] Remove session: 136.116.248.213|1 '76561198069153857'
[00:45:06]: Remote left click out of range
[00:45:07]: Remote left click out of range
[00:45:21]: [(KU_UpWWkB0e) Redakted] ReceiveRemoteExecute(local player = LookupPlayerInstByUserID('KU_AQbLN3PW') if player then if ThePlayer.Physics then ThePlayer.Physics:Teleport(player.Transform:GetWorldPosition()) else ThePlayer.Transform:SetPosition(player.Transform:GetWorldPosition()) end else local cave = GetClosestInstWithTag('migrator', ThePlayer, 1000) c_goto(cave) end) @(-425.23, 590.11)
[00:45:23]: [(KU_UpWWkB0e) Redakted] ReceiveRemoteExecute(local player = LookupPlayerInstByUserID('KU_AQbLN3PW') if player then if player.components.revivablecorpse and player:HasTag('corpse') then player.components.revivablecorpse:Revive(ThePlayer) player:DoTaskInTime(2, function() if player.components.health then player.components.health:SetPercent(1) end end) elseif player.components.health then player.components.health:SetPercent(0) end else local cave = GetClosestInstWithTag('migrator', ThePlayer, 1000) c_goto(cave) end) @(216.57, 139.52)
[00:45:25]: Could not find anim [death] in bank [ghost]
[00:45:25]: Serializing user: session/5B6A0768B82111BD/A7H9L5ALODJ0/0000000192
[00:45:27]: [(KU_UpWWkB0e) Redakted] ReceiveRemoteExecute(local player = LookupPlayerInstByUserID('KU_AQbLN3PW') if player then if player:HasTag('playerghost') then player:PushEvent('respawnfromghost') player:DoTaskInTime(2, function() if player.components.health then player.components.health:SetPercent(1) end if player.components.sanity then player.components.sanity:SetPercent(1) end if player.components.hunger then player.components.hunger:SetPercent(1) end end) end else local cave = GetClosestInstWithTag('migrator', ThePlayer, 1000) c_goto(cave) end) @(218.99, 137.54)
[00:45:28]: Could not find anim [idle_loop] in bank [ghost]
[00:45:28]: CURL ERROR: (dst.metrics.klei.com) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
[00:45:30]: Could not find anim [transform] in bank [wilson]
[00:45:32]: Serializing user: session/5B6A0768B82111BD/A7H9L5ALODJ0/0000000192
[00:45:38]: KU_UpWWkB0e running text command: laugh true
[00:46:02]: [(KU_UpWWkB0e) Redakted] ReceiveRemoteExecute() @(210.15, 144.49)
[00:46:16]: [(KU_UpWWkB0e) Redakted] ReceiveRemoteExecute(c_save()) @(210.15, 144.49)
[00:46:17]: Available disk space for save files: 299843 MB
[00:46:17]: Serializing user: session/5B6A0768B82111BD/A7ND9K84IQTE/0000000192
[00:46:17]: Serializing user: session/5B6A0768B82111BD/A7JR70GBHC18/0000000192
[00:46:17]: Serializing user: session/5B6A0768B82111BD/A7H9L5ALODJ0/0000000192
[00:46:17]: Serializing world: session/5B6A0768B82111BD/0000000192
[00:46:18]: [(KU_UpWWkB0e) Redakted] ReceiveRemoteExecute(local player = LookupPlayerInstByUserID('KU_xKqGIMkk') if player then if ThePlayer.Physics then ThePlayer.Physics:Teleport(player.Transform:GetWorldPosition()) else ThePlayer.Transform:SetPosition(player.Transform:GetWorldPosition()) end else local cave = GetClosestInstWithTag('migrator', ThePlayer, 1000) c_goto(cave) end) @(215.62, 141.76)
[00:46:25]: [(KU_UpWWkB0e) Redakted] ReceiveRemoteExecute(c_shutdown()) @(-438.20, 598.81)
Play on a server as wormwood with the purchasable skins.
log out
Set server send/receive limit to 10kb
Try to login
There are no comments to display.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now