TeleportService.TeleportAsync doesn't work after a shutdown has been performed

Hi,

To replicate you need multiple (2+) people in one server.

I am 100% confident this is a new and reproducible issue, I used this script for the entirety of August and when updating servers I would drop from 25k CCU to like 24.8k, which is expected. On the 31st August when I updated servers I dropped from 25k to 8k as the players weren’t automatically rejoined. Over the next 30+ minutes my playercount returned as players manually joined back.

Currently I’m using a workaround fix which teleports players to a reserved server first, and then teleports them again to a normal (non reserved) server which seems to mostly work however it’s not an ideal solution as it counts as +2 visits for each player, and I believe it is hurting my session time.

If you would like to reach out I’m happy to demonstrate to you with another game of mine (300 CCU~) which still has softshutdown.

5 Likes

Thanks for the additional information. I will try reproducing the issue again.

3 Likes

Hello! I’m experiencing this issue in my game too. I teleport all the players back to the game once it shutdowns, and as of recently (past week ish) they just hang indefinitely and don’t teleport nor crash or close or anything. Keep me updated!

2 Likes

Hi, do you have any more information on this? It is still negatively impacting my game due to me having to use a subpar workaround

2 Likes

Hi, thanks everyone for reporting. We have a fix that should be released next week.

8 Likes

@SuperPat77 Hey! Following up to your post here:

I’ve just tested and this bug is still prevalent. Are there any updates you can provide on this?

3 Likes

I’ve just tested too and the issue is still there

2 Likes

We attempted to roll out the fix with a flag but there was an issue with it. We’re regrouping to discuss next steps on this one

6 Likes

Thank you for the update, I’m eagerly awaiting the fix!

I’m being affected by this too. Can consistently reproduce in servers of 2+ people

3 Likes

A temporary solution I found is instead of teleporting everyone in the server using a single table with TeleportAsync’s second parameter, you have to teleport every player individually.

Put this at the end of your soft shutdown code:

--Teleporting each player individually instead as one group
for _, player in Players:GetPlayers() do
	task.spawn(function()
		pcall(function()
			return TeleportService:TeleportAsync(targetPlaceId, {player}) -- teleport the user in a protected call to prevent erroring
		end)
	end)
end

-- TeleportService:TeleportAsync(targetPlaceId, CurrentPlayers)
-- Keep the server alive until all of the player(s) have been teleported.
while Players:GetPlayers()[1] do
	task.wait(1)
end

@SuperPat77 So it could be an issue with teleporting a group of players using TeleportAsync in the BindToClose function

3 Likes

Thanks. This is still quite an annoyance as you can’t teleport all the players together and they may get spread out amongst different servers rather than remaining in the same one. Really hope this is fixed soon.

2 Likes

Nice find! As long as you use Migrate to Latest Update (recently renamed Restart Servers for Updates - announcement) players will still be together after reconnecting even if they are teleported individually (fyi @bvetterdays).

Unfortunately, there’s been some other issues coming up in the past week that have pulled us away from this. We haven’t forgotten about this issue, but can’t give an ETA on our next fix attempt yet. Until then, I recommend using this workaround

5 Likes

I had logic that teleports people to a new server on BindToClose. That stopped working recently as folks have mentioned above. Now when I use “Migrate to latest”, players see the “Exit” or “Reconnect” dialog. Because of this, I lose half my players on game updates now. Before, I would lose very few when my auto-reconnect logic worked, and players didn’t have to explicitly choose to re-conenct.

Is there any workaround to bypass the “Exit or Reconnect” dialog and automatically re-connect players?

4 Likes

It’s been over a month and this issue still persists. Do you have any updates on this?

1 Like

We attempted to roll out another fix to this last week. It fixed this issue but caused another one to pop up and had to be reverted. We’re still trying to track down exactly what’s broken in this process

3 Likes

Previous workaround of teleporting each player individually instead of all of them at the same time has ceased to work as of roughly 2 days ago, this message pops up when I attempt to shutdown the servers.

6 Likes

Over 2 months now ;( I’m really looking forward to a fix on this

1 Like

Thanks for the heads up. I’ve bumped this issue to the relevant team again

4 Likes

I wonder if TeleportPartyAsync has the same issue:

local Players = game:GetService("Players")
local TeleportService = game:GetService("TeleportService")

local PLACE_ID = 0 -- replace
local playerList = Players:GetPlayers()

local success, result = pcall(function()
	return TeleportService:TeleportPartyAsync(PLACE_ID, playerList)
end)

if success then
	local jobId = result
	print("Players teleported to", jobId)
else
	warn(result)
end