Teleport unauthorized?

  1. What do you want to achieve? Keep it simple and clear!
    I am currently making a server list system for my game, much like the one in Deepwoken or Lore game.

  2. What is the issue? Include screenshots / videos if possible!
    Everything else works fine except for the actual teleporting of the player.
    In game, the f9 menu gives me these errors, I’m using TeleportToPlaceInstance with the JobId of the server I’m trying to teleport to.
    image
    “Teleport failed because Game instance cannot be joined (Unauthorized)”
    I’d like to know why it isn’t authorized and if theres a way to fix it.
    In both the place where the player starts and the server I’m trying to teleport the player to, third party teleports and API services are on. The game is public.

  3. What solutions have you tried so far? Did you look for solutions on the Developer Hub?
    I’ve looked at the documentation and tried out various methods of teleportation, but I’d really prefer to use TeleportToPlaceInstance() Unless there is a better alternative that can get the player to a specific place in a specific Instance.

This is the majority of the script I’m using, it is supposed to organize a list of all the available servers, again, that part works just fine. It’s just when the play button on a server is pressed, it gives that previously mentioned error in the logs, and says “Teleport failed: Game instance cannot be joined (Error code 773)” which apparently may mean that the game instance is private even though it is not. I know this becauseI have also tried directly connecting to the place by simply doing
game:GetService(“TeleportService”):Teleport([the id number of the place])
and that works perfectly fine, but it doesn’t teleport to the specific server instance that the player was trying to connect to.
Thanks!

local function updateGui()

	for _, obj in pairs(script.Parent.ServerList.List:GetChildren()) do
		if obj:IsA("Frame") then
			obj:Destroy()
		end
	end
	
	for i, serverValue in pairs(game.ReplicatedStorage.ServersFold:GetChildren()) do
	
		local name = serverValue.Name
		local serverStats = string.split(serverValue.Value, "/")
		local id = serverStats[1]
		local plrs = serverStats[2]
		local serverFrame = script.Parent.Parent.templat.Serverframe:Clone()
		
		serverFrame:WaitForChild("ServerName").Text = serverValue.Name
		serverFrame:WaitForChild("PlayerLimit").Text = plrs .. "/test"
		serverFrame.Visible = true

		serverFrame.play.MouseButton1Click:Connect(function()
			print(id)

		tp:TeleportToPlaceInstance(90773464082997, id)
		end)


			serverFrame.Parent = script.Parent.ServerList.List
		
		end
	end

updateGui()

game.ReplicatedStorage.ServersFold.ChildAdded:Connect(updateGui)
game.ReplicatedStorage.ServersFold.ChildRemoved:Connect(updateGui)

startbutton.MouseButton1Click:Connect(function()--TeleportToPlaceInstance(game.PlaceId,101850777894932)
	game:GetService("TeleportService"):Teleport(101850777894932)

end)

With TeleportService I’m pretty sure the server needs to be reserved first, using ReserveServer

Also, checking the documentation it seems TeleportToPlaceInstance is deprecated, and recommends to use TeleportAsync. I believe you can put all the special properties into a TeleportOptions instance

You are using a local script to teleport the player?

Print that out to see if it’s correct.

i realized the issue was in the URL.
instead of putting “http://ip-api.com/json
i put “https://ip-api.com/json
that one S messed everything up
gosh i feel silly but i figured it out so we’re all good.
I appreciate the questions and help though!