TeleportService has consistently had an issue where some teleports to reserved servers take an extremely long period of time to “engage” & actually begin the teleport. By engage, I refer to when the Roblox client actually quits the old place & begins loading in to the new one.
As you can see in the graph below, over the past 90 days for my game (ignore the period of missing data), per hour I have up to 2,000 teleports that take upwards of 15 seconds (the condition for my metric points) for the player to actually be removed from the initial place where the teleport begins – this is even after factoring out teleports that have failed via TeleportService.TeleportInitFailed
.
It is unrelated to the player device, and can appear to happen regardless of any networking or device conditions on the player’s end. It manifests as them being able to walk around in the initial place that has engaged the teleport for an extended period of time – in my game, I immediately display the loading screen, & players believe they’ve gotten stuck on the loading screen due to the extreme length the teleport takes.
Eventually, the teleport will engage, but in some circumstances it takes upwards of 30 seconds to go through, at which point the player often disconnects early & I lose out on them.
Lastly, I’ve also included a graph of “total teleport time” values. This is the time from when the teleport is engaged on the initial server, to the time that PlayerAdded is called on the receiving server. As you can see the average & 5th percentile are both reasonable, but the 95th percentile is massively in excess of both – even factoring in for the large number of players who would’ve quit before the long teleport succeeded.
Expected behavior
I believe that there should be a native timeout period for a teleport to go through, & if it does not, an exception should be raised so that we can re-try the teleport, & give some indication to the player that there has been an issue. However, the core of the issue is that these teleports just shouldn’t take as long as they do.
The TeleportService has always been unreliable & has always suffered from continuous issues, and I hope that some better metrics & error reporting can be built internally so that these types of posts are not required in the future.