OnEndCursorOver not fired

I have enabled bEnableMouseOverEvents in my controller, and I have a c++ class deriving from AActor, that defines two UFUNCTIONs - one for mouse over and one for mouse out event as below:

UFUNCTION()
void OnMouseOver(AActor* TouchedActor);
UFUNCTION()
void OnMouseOut(AActor* TouchedActor);

In constructor I subscribe to events as below:

OnBeginCursorOver.AddDynamic(this, &ATP_Tower::OnMouseOver);
OnEndCursorOver.AddDynamic(this, &ATP_Tower::OnMouseOut);

For some strange reason the OnMouseOver function is called, but OnMouseOut isn’t. Anyone dealt with such issues before?

So I’ve been going crazy about this issue for an hour and eventually I re-created a code-identical c++ class to the one I described from scratch. The newly made class doesn’t exhibit this problem and I can move on with my life.

What worries me though is that, clearly, something borked up my existing class under the hood in a way where I couldn’t tell what’s wrong. Is there a way one can clear cache or something to fix existing instances that are messed up?