A regression introduced in UE 5.6 causes Blackboard key selectors in Blueprint tasks to become invalid when the Blueprint inherits from a native subclass of UBTTask_MoveTo (or UBTTask_BlackboardBase) and includes any function.
The issue appears to stem from new save-time validation logic implemented in UBTNode::PreSave, which scans for properties and validates them against the Blackboard asset. This logic seems to not correctly handle BP task assets, leading to invalid key references when saving the Behavior Tree.
Once a Blueprint has been affected, removing the function does not restore correct behavior. The issue does not reproduce in UE 5.5 or earlier. Licensee is facing this problem when migrating to UE 5.6 since he uses a BP task that inherits from UBTTask_MoveTo.
This issue has been reproduced in UE 5.6 launcher build and a source build from Main (CL 43981109).
1. Open the attached repro project using UE 5.6 or a recent Main build.
2. Create a new BP derived from native class UMyBTTask_MoveTo which itselfs inherits from UBTTask_MoveTo.
3. Add an empty function to the Blueprint.
4. Open the BT_Base asset.
5. Add the newly created BP task node that inherits from UMyBTTask_MoveTo .
6. Save the Behavior Tree.
7. Observe that the Blackboard key selector becomes invalid after saving. All selector types become invalid.
Expected result: The key selector remains valid and retains the assigned Blackboard key.
Actual result: Key selector is invalidated and breaks the BT logic.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-302266 in the post.