Timer reference does not exist while timer is working

So this is a confusing one.

The setup is as follows:
The player is inside a house, arbitrary logic is accumulating a value based on which player is getting “spotted”. Once the player is spotted, one of the windows around him starts flickering with a light source. Player can “hide” to decrease this value, and when it drops below certain value - the window should stop flickering.

Here’s the bluepring handling the flickering in the Window actor:

So an external “manager” actor calls StartWarning and StopWarning events based on conditions.

About 3 out 4 times everything works correctly, but SOMETIMES the PrintString node in StopWarning event returns False, so the StopWarning event DOES fire, but the timer reference for some reason ceases to be valid. Yet the window continues flickering, so the timer still works…

What is even more confusing: I’ve made an extra failsafe with a Gate node:

And… nothing changed. The timer still continues firing even after the gate is supposed to be closed, yet it is not.

So obvious checks out of the way:
StopWarning DOES fire, while getting Timer Exists - False;
StartWarning DOES NOT fire after StopWarning because of a mistake, nope, double checked it;

Why timer does not exist while it works?
Why Gate node does not work in this case?
I’m so confused…

I’m not sure if this makes any difference at all, but you could try set timer by function name instead of set timer by event.

Sometimes just changing one minor thing works for unknown reasons.

I use timers a lot and never had a problem with the references. Is it possible something is calling StopWarning when it shouldn’t?

Uhhh, sorry to leave this question hanging.
As it tends to happen, I’ve found a fault on another level of blueprints which caused it to reference the wrong “window” which actually did not have an existing timer, I just got confused in my own debug outputs.

I’m pretty sure though that I have encountered a similar problem with timers before, under different circumstances, but already worked around it, so I’m not gonna dig deep into that right now.

Thanks for the suggestions, but as it almost always is - just a dumb mistake in the place I never thought to check.:smiley: