Some functions failing to work

Hey there programmers,
I created this topic to clear something up. Sometimes events such as “GetAttributeChangedSignal” or “GetPropertyChangedSignal” fails to work. The code down there is an another example.

local GlobalVals = RS:WaitForChild("GlobalVals")

local Status = GlobalVals:WaitForChild("Status") 

-- User Interface
local ScreenGUI = script.Parent
local TextFrame = ScreenGUI:WaitForChild("TextFrame")
local MapVotingFrame = ScreenGUI:WaitForChild("MapVotingFrame")



Status.Changed:Connect(function(newValue)
	TextFrame.TextLabel.Text = newValue
end)

task.spawn(function()
	while true do
		task.wait(3)
		print("Current Status:", Status.Value)
	end
end)

I have another function in other script to change it, and it seemed to be functioning properly.
In my opinion the status is getting changed faster than the getattributesignal can load. Please prove me wrong if you can. All helps are appreciated.

Thank you

Anyway, I debugged the code and found the issue my suspicions were about half correct. Apparently, the initial change in the value is not counted as a change, therefore making me go mad. Welp

Thanks to everyone who spent time reading this post