When i press the button on my gui, the output gets spammed with tons of errors that lead to NoYield line 13

--[[
	Calls a function and throws an error if it attempts to yield.

	Pass any number of arguments to the function after the callback.

	This function supports multiple return; all results returned from the
	given function will be returned.
]]

local function resultHandler(co, ok, ...)
	if not ok then
		local message = (...)
		error(debug.traceback(co, message), 2)
	end

	if coroutine.status(co) ~= "dead" then
		error(debug.traceback(co, "Attempted to yield inside changed event!"), 2)
	end

	return ...
end

local function NoYield(callback, ...)
	local co = coroutine.create(callback)

	return resultHandler(co, coroutine.resume(co, ...))
end

return NoYield

idk why it does this but heres my script

-- Script
-- inside Server script service
--One time purchase item 

local mps = game:GetService("MarketplaceService")
local gamepass = 941172846 -- one time item

game.ReplicatedStorage.b.OnServerEvent:Connect(function(player)
	game.Workspace.scp323.Position = player.Character.Torso.Position
end)

my gui script:

-- Local Script

-- inside  my gui

local mps = game:GetService("MarketplaceService")
local gamepass = 941172846

script.Parent.MouseButton1Click:Connect(function()
	local player = game.Players.LocalPlayer
	mps:PromptGamePassPurchase(player, gamepass)
end)

mps.PromptGamePassPurchaseFinished:connect(function(player, id, purchased)
	if id == gamepass and purchased then
		game.ReplicatedStorage.b.FireServer()
	end
end)