This is the table and the value I am putting in there
table.insert(self.ActiveMessages, 1, { Label = label, Time = 0, Duration = duration, Static = static })
Then this is the for loop that isn't traversing the table, it is stopping at the first value despite #self.ActiveMessages returning the correct amount.
for i = #self.ActiveMessages, 1, -1 do
local msg = table.remove(self.ActiveMessages, i)
msg.Label:Destroy()
break
end