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

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

5 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

It does - I believe it uses the same system backend so the same error occurs. It’s disappointing that this has been an issue for months now and engineers haven’t even been able to diagnose it yet :confused:

I trust the Roblox team is aware of this issue and have it on their docket. Sometimes these things take a while to sort out.

but … now that I think about it… is it possibility they are noticing an uptick in revenue due to less premium payouts due to this? They will of course ask is it worth fixing?

Still having issues with this. Soft shutdowns used to work flawlessly and reduced CCU loss during updates. Would love to see it expedited.

1 Like

I know this is causing a lot of pain. We have another attempt at fixing this slated for next week’s release

5 Likes

We’ve just enabled a fix for this issue. From our testing, everything looks good. We’d appreciate it if some people here could confirm everything looks good on their end before we close this out.

2 Likes

I am testing SoftShutdown2 in a testing server and shutting down all servers still shows “Player has been removed from the DataModel”.

What’s the PlaceId and rough timestamp you tested?