Setting blackboard value in BT Task's method AbortTask()

Hi folks.
I have custom BT Task, written in C++ for chasing player. In its method TickTask() it tracks last seen player location. When pawn under control looses sight of player, task is aborted and in its AbortTask() method it sets variable “LastSeenPlayerLocation” in blackboard (“ownerComp.GetBlackboardComponent()->SetValueAsVector(…)”).
Parent of my task is Selector node and next less priority branch (the one on the right) is checking if blackboard variable “LastSeenPlayerLocation” is set.
The problem is that when my task is finished, that branch is not executed. It looks like setting blackboard values in AbortTask() method is not visible to parent selector.
If I move setting of blackboard variable from AbortTask() to TickTask(), then everything works fine. But I don’t want to set blackboard variable every tick. It is waste of time. If my assumption is correct and setting blackboard variable from AbortTask() is not visible to parent Selector, then what is the common practice to “return” blackboard values from BT Task? May be it is not enough just to call SetValueAsVector(), may be there should be additional call, kind of “ParentNode->ReevaluateResult()”?

Have you tried overriding UBTTaskNode::OnTaskFinished(…) and putting your SetValueAsVector logic in there? I am not sure if it will work but by the name alone it appears to be more suitable for what you are doing.

Yup, I tried. Moreover I tried to return “InProgress” in AbortTask(), then in TickTask() check if ownerComp.IsAbortPending() and in this case set blackboard variables and finish pending abort by calling FinishLatentAbort() - nothing helps.

Looks like my assumption is correct. According to code of UBehaviorTreeComponent::ProcessExecutionRequest() first they are choosing NextTask and then they send abort to the current one. It is still not clear, is there any way for task to get notified before next task is selected.