I wanted the player data to save when they leave the game but it was not working so I added a pcall and I am getting no response from it.

local Data = game:GetService("DataStoreService"):GetDataStore("PlayerDataV0")

local prefix = "user_"

game.Players.PlayerAdded:Connect(function(player)
	local leaderstats = Instance.new("Model")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player
	
	local cash = Instance.new("IntValue")
	cash.Name = "Cash"
	cash.Value = 0
	cash.Parent = leaderstats
	
	local size = Instance.new("NumberValue")
	size.Name = "Size"
	size.Value = 1.07
	size.Parent = leaderstats
	
	local rebirths = Instance.new("NumberValue")
	rebirths.Name = "Rebirths"
	rebirths.Value = 0
	rebirths.Parent = leaderstats
	
	local plrData = Data:GetAsync(prefix..tostring(player.UserId))
	
	if plrData then
		cash.Value = plrData[1] or 0
		size.Value = plrData[2] or 1.07
		rebirths.Value = plrData[3] or 0
	else
		Data:SetAsync(prefix..tostring(player.UserId),{
			cash.Value,
			size.Value,
			rebirths.Value
		})
	end
end)

game.Players.PlayerRemoving:Connect(function(player)
	warn("Saving Data...")
	local function saveData()
		Data:SetAsync(prefix..tostring(player.UserId),{
			player.leaderstats.Cash.Value,
			player.leaderstats.Size.Value,
			player.leaderstats.Rebirths.Value
		})
	end
	local success, message = pcall(saveData)
	if success then
		warn("Successfully saved "..player.Name.."'s data!")
	else
		warn("An error ccurred: "..message)
	end
end)