Somewhy it's not adding ew people anymore

I made a leaderstat that shows when people joined and it does update but it doesn’t add the people anymore:

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

local FirstJoinDS = DataStoreService:GetOrderedDataStore("FirstJoinLeaderboard")
local leaderboard = game.Workspace.LeaderboardSince -- Ensure this part is set up correctly

-- Save the first join time if not already saved
Players.PlayerAdded:Connect(function(player)
	local success, data = pcall(function()
		return FirstJoinDS:GetAsync(player.UserId)
	end)

	if success and data == nil then
		-- Save current time as their first join
		pcall(function()
			FirstJoinDS:SetAsync(player.UserId, os.time())
		end)
		print(player.Name .. " first join time saved.")
	end
end)

-- Function to update leaderboard
local function updateLeaderboards()
	local success, err = pcall(function()
		local data = FirstJoinDS:GetSortedAsync(true, 10) -- true = oldest players first
		local page = data:GetCurrentPage()

		print("Updating leaderboard...")

		for rank, entry in ipairs(page) do
			local userId = tonumber(entry.key)
			local joinTimestamp = entry.value

			local userName = Players:GetNameFromUserIdAsync(userId)
			local isOnLeaderboard = false

			-- Check if already on leaderboard
			for _, frame in pairs(leaderboard.SurfaceGui.Holder:GetChildren()) do
				if frame:IsA("Frame") and frame.Player.Text == userName then
					isOnLeaderboard = true
					break
				end
			end

			-- If not already added, add the player
			if not isOnLeaderboard then
				local newFrame = game.ReplicatedStorage.LeaderboardFrame:Clone()

				-- Player Name
				newFrame.Player.Text = userName
				newFrame.Player.Position = UDim2.new(0, 400, 0, 0) -- Adjusting position
				newFrame.Player.TextScaled = true
				newFrame.Player.TextWrapped = true
				newFrame.Player.TextXAlignment = Enum.TextXAlignment.Left

				-- **HIDE Avatar Completely in Script**
				newFrame.Player.avatar.Visible = false -- Hides the avatar image

				-- Date formatting: Shorter format for date
				newFrame.Stat.Text = os.date("%d.%m.%y", joinTimestamp)
				newFrame.Stat.TextScaled = true
				newFrame.Stat.TextWrapped = true
				newFrame.Stat.TextXAlignment = Enum.TextXAlignment.Left
				newFrame.Stat.Position = UDim2.new(0, 415, 0, 0) -- Adjust date position

				-- Rank
				newFrame.Rank.Text = "#" .. rank
				newFrame.Rank.Position = UDim2.new(0, 50, 0, 0) -- Adjust position of rank
				newFrame.Rank.TextScaled = true
				newFrame.Rank.TextWrapped = true
				newFrame.Rank.TextXAlignment = Enum.TextXAlignment.Left

				-- Optional: Color coding top 3
				if rank == 1 then
					newFrame.Player.TextColor3 = Color3.new(1, 0.705882, 0.227451)
				elseif rank == 2 then
					newFrame.Player.TextColor3 = Color3.new(0.721294, 0.721279, 0.721279)
				elseif rank == 3 then
					newFrame.Player.TextColor3 = Color3.new(0.736507, 0.487678, 0.259174)
				end

				-- Parent the frame
				newFrame.Parent = leaderboard.SurfaceGui.Holder
				print("Added " .. userName .. " to leaderboard")
			end
		end
	end)

	if not success then
		warn("Failed to update leaderboard: " .. err)
	end
end

-- Loop to refresh leaderboard
while true do
	-- Clear previous frames
	for _, frame in pairs(leaderboard.SurfaceGui.Holder:GetChildren()) do
		if frame:IsA("Frame") then
			frame:Destroy()
		end
	end

	-- Refresh leaderboard
	updateLeaderboards()
	wait(30) -- Refresh rate
end

You have to go to the next page of the datastore.

local pages = data
repeat
	for _, entry in ipairs(pages:GetCurrentPage()) do
		--
	end
until not pages.IsFinished and pages:AdvanceToNextPage()