TeleportData not being passed?

Title says it all. I am passing a Vector3 in my TeleportData. When it rejoins you in a private server. But it’s not sending the TeleportData. It prints that TeleportData is empty

if game.PrivateServerId ~= "" and game.PrivateServerOwnerId == 0 then -- Reserved server
	local Message = Instance.new("Message")
	Message.Text = "This is a temporary AFK lobby. Teleporting back in a moment."
	Message.Parent = workspace

	local JoinData = player:GetJoinData()
	if JoinData.TeleportData then
		-- Check if the table is truly empty
		if next(JoinData.TeleportData) == nil then
			print("TeleportData is an empty table.")
		else
			-- Print the entire table to see its contents
			print("TeleportData contents:")
			for i, v in JoinData.TeleportData do
				print(i, v)
			end
		end

		-- Specifically check for the Position key
		if JoinData.TeleportData.Position then
			print("Position:", JoinData.TeleportData.Position)
		else
			print("Position is nil")
		end
	else
		print("TeleportData is nil")
	end

	task.wait(30)

	TeleportService:Teleport(PLACE_ID, player, JoinData.TeleportData)

	return
end

-- On AFK, sending to private server for a second
local ReservedServerCode = TeleportService:ReserveServer(PLACE_ID)
TeleportService:TeleportToPrivateServer(
	PLACE_ID,
	ReservedServerCode,
	{ player },
	"",
	{ Position =  player.Character:GetPivot().Position }
)

Using TeleportOptions does not work either

local TeleportOptions = Instance.new("TeleportOptions")
local TeleportData = { Position =  player.Character:GetPivot().Position }
TeleportOptions.ShouldReserveServer = true
TeleportOptions:SetTeleportData(TeleportData)

TeleportService:TeleportAsync(PLACE_ID, { player }, TeleportOptions)

Have you tried JSON encoding your position as teleport data may not handle non integers and strings