Infinite Yield with no reason

HELP! I created a increase and decrease system. I Added a sanity system for my game on numer values instances, on a prompt i tried to make the sanity decreases but the script cannot find the instance.

PROMPT SCRIPT

local prompt = script.Parent
local module = require(game:GetService("ServerScriptService")["D.A.S"])

prompt.Triggered:Connect(function(plr)
	local humanoid = plr.Character:WaitForChild("Humanoid")
	local attribute = humanoid.Health
	
	
	module.Decrease(10,humanoid:WaitForChild("Sanity").Value)	
end)

MODULE SCRIPT (DECREASE AND INCREASE SYSTEM)

local Increase = {}

function Increase.Increase(Value: number, Attribute)
	Attribute = Attribute + Value
	print("Increased "..Attribute)
end

function Increase.Decrease(Value: number,Attribute)
	Attribute = Attribute - Value
	print("Decreased "..Attribute)
end


return Increase

Can you guys give me a feedback? :smiling_face_with_three_hearts:

How is sanity made or cloned may i ask?

Instance.new on startercharacter scripts.

local plr = game:GetService("Players").LocalPlayer

local char = plr.Character

local humanoid = char.Humanoid

local MaxSanity = Instance.new("NumberValue")

local Sanity = Instance.new("NumberValue")

MaxSanity.Parent = humanoid

Sanity.Parent = humanoid

MaxSanity.Value = 50

Sanity.Value = MaxSanity.Value

Sanity.Name = "Sanity"

MaxSanity.Name = "MaxSanity"

MaxSanity:GetPropertyChangedSignal("Value"):Connect(function()

Sanity.Value = MaxSanity.Value

end)

Sanity:GetPropertyChangedSignal("Value"):Connect(function()

if Sanity.Value > MaxSanity.Value then

Sanity.Value = MaxSanity.Value

end

end)