Notify observer misses to abort relevant cases for both possible values

I updated my custom MoveTo task and now it seems like a decorator checking for an Enum value does not update correctly in the behavior tree.

Inside my Behavior Tree, the logic looks as follows. In case I set the “if walk mode” Enum decorator to “on value change” or “on result change”, it always misses some of the changes. When I use both cases or a composite decorator with both cases, it at least refreshes each time the key is updated. However, it sometimes still misses to skip the tasks.
I was wondering if the “Lock AILogic” parameter was really set correctly. I also tried to work with a normal moveto and a simple parallel execution to outsource my custom tests of the movement but the parallel tree did not execute at all.

The custom task updated contains different MoveTo tasks with “Lock AILogic” disabled. The movement is applied to the pawn in an “RTS rightclick style”, full movement configuration below. I tested in a way so only this single MoveTo is firing. My testcase also includes force-exiting movement with a click, using a call to the AIController “Stop Movement” function additional to checks in the custom moveTo task.


It seems like this was a timing issue.
I was able to fix the issue by setting another blackboard key “movementVerified” to false before “Finish execute” in the task. This key is set to true each time the service gets executed. In the previous setup, the task got reexecuted before the service was triggered after the latest task run. Somehow this reexecution disturbed the abort operation. With the new setup, the task blocks its own reexecution until the service sets the value again.