DataStoreService: AccessForbidden: Access forbidden. API: GetAsync, Data Store: PoopFlingers

I’m trying to make my game but I’ve come across a data error.

Is this something wrong with Roblox or am I getting too much data?

local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local KillsData = DataStoreService:GetOrderedDataStore("PoopFlingers","Kills")
local CoinsData = DataStoreService:GetDataStore("PoopFlingers","Coins")
local AbilitiesData = DataStoreService:GetDataStore("PoopFlingers","Abilities")
local EquippedData = DataStoreService:GetDataStore("PoopFlingers","Equipped")

local Remotes = ReplicatedStorage.Remotes
local Bindables = ReplicatedStorage.Bindables
local Assets = ReplicatedStorage.Assets
local GlobalLeaderboard = workspace.GlobalLeaderboard



local DataStore = {}

DataStore.sessionData = {}

local function RefreshLeaderboard()
	for i,v in GlobalLeaderboard.SurfaceGui:GetChildren() do if not v:IsA("UIListLayout") then v:Destroy() end end
	local success,pages = pcall(function()
		return KillsData:GetSortedAsync(false,10)
	end)
	if success then
		local entries = pages:GetCurrentPage()
		for rank,entry in pairs(entries) do
			local nE = string.gsub(entry.key,"kills","")
			local id = tonumber(nE)
			local name = Players:GetNameFromUserIdAsync(id)
			local item = script.Place:Clone()

			item.Parent = GlobalLeaderboard.SurfaceGui
			item.Kills.Text = tostring(entry.value)
			item.Title.Text = name
			item.Order.Text = tostring(rank)
		end
	end
end

local function InitAbilities(player)
	DataStore.sessionData[player] = {}
	for i,v in Assets.Shop:GetChildren() do
		DataStore.sessionData[player][v.Name] = false
	end
end

function DataStore:Init()
	Players.PlayerAdded:Connect(function(player)
		local leaderstats = Instance.new("Folder")
		leaderstats.Name = "leaderstats"
		local kills = Instance.new("IntValue")
		kills.Name = "Kills"
		local coins = Instance.new("IntValue")
		coins.Name = "Coins"
		local equipped = Instance.new("StringValue")
		equipped.Name = "Equipped"
		
		equipped.Parent = player
		leaderstats.Parent = player
		kills.Parent = leaderstats
		coins.Parent = leaderstats
		InitAbilities(player)
		local pK = tostring(player.UserId)

		local coinsReceived,lastCoins = pcall(function()
			return CoinsData:GetAsync(pK.."coins")
		end)
		if coinsReceived and lastCoins then
			coins.Value = lastCoins
		end
		local killsReceived,lastKills = pcall(function()
			return KillsData:GetAsync(pK.."kills")
		end)
		if killsReceived and lastKills then
			kills.Value = lastKills
		end
		local abilitiesReceived,lastAbilities = pcall(function()
			return AbilitiesData:GetAsync(pK.."abilities")
		end)
		if abilitiesReceived and lastAbilities then
			for i,v in lastAbilities do
				DataStore.sessionData[player][i] = v
			end
		end
		local equippedReceived,lastEquipped = pcall(function()
			return EquippedData:GetAsync(pK .. "equipped")
		end)
		if equippedReceived and lastEquipped then
			equipped.Value = lastEquipped
		end
		RefreshLeaderboard()
		while true do
			task.wait(50)
			if player.leaderstats.Kills.Value ~= 0 then
				KillsData:UpdateAsync(pK .. "kills",function(past)
					return player.leaderstats.Kills.Value
				end)
			end
		end
	end)

	Players.PlayerRemoving:Connect(function(player)
		local pK = tostring(player.UserId)

		if player.leaderstats.Coins.Value ~= 0 then
			local success,result = pcall(function()
				return CoinsData:SetAsync(pK .. "coins",player.leaderstats.Coins.Value)
			end)
		end
		if player.leaderstats.Kills.Value ~= 0 then
			local success,result = pcall(function()
				return KillsData:SetAsync(pK .. "kills",player.leaderstats.Kills.Value)
			end)
		end
		if DataStore.sessionData[player] then
			for i,v in DataStore.sessionData[player] do print(i,v) end
			local success,result = pcall(function()
				return AbilitiesData:SetAsync(pK .. "abilities",DataStore.sessionData[player])
			end)
		end
		if player.Equipped.Value ~= "" then
			local success,result = pcall(function()
				return EquippedData:SetAsync(pK.."equipped",player.Equipped.Value)
			end)
		end
	end)

	task.spawn(function()
		while true do
			task.wait(10)
			RefreshLeaderboard()
		end
	end)
end

return DataStore