Changing Character to Starter Character if they don't have the gamepass

Hello so someone helped me with the StarterCharacter, but now it lags in midair and keeps looping everytime and the character glitches what is wrong?

local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local char = game:GetService("ServerStorage").StartChar
local gamePassID = 12191214

Players.PlayerAdded:Connect(function(player)
		local hasPass = false

		local success, message = pcall(function()
			hasPass = MarketplaceService:UserOwnsGamePassAsync(player.UserId, gamePassID)
		end)
		if not success then
			warn("Error while checking if player has pass: " .. tostring(message))
			return
		end

	player.CharacterAdded:Connect(function(plrChar)
		if not hasPass then
			wait() -- this isnt really necessary
			local newChar = char:Clone()
			newChar.Parent = workspace
			newChar:MoveTo(plrChar:WaitForChild("HumanoidRootPart").Position)
			newChar.Name = player.Name
			player.Character = newChar
			print("Works")
			plrChar:Destroy()
			game:GetService("ReplicatedStorage").LoadAnims:FireClient(player, newChar)
		end
	end)
end)

? I see a message but its deleted