[SURVEY] There's A Really Really Terrible Bug Where Child Blueprints Get Their Variables Reset

I can confirm some version of the issue occurs for me in 4.18.3 and and 4.19. I have reported it through the bug submission form. But, I will also provide my MWE of the issue (4.19 windows) if anyone would like to use it as a jumping off point for solving this.

In my case, the setup requires the following three parts: there is an Actor blueprint (lets call it BP_Parent), an animation blueprint (lets call it ABP_Parent), and another Actor blueprint called BP_Child. To reproduce what I am seeing do the following:

  1. Setup BP_Parent’s component hierarchy the following children: a child actor component of type BP_Child and skeletal mesh that uses ABP_Parent.
  2. Setup ABP_Parent’s component hierarchy with a single component of type of BP_Parent.
  3. In BP_Parent’s event graph create nodes that retrieve and cast both the animation blueprint and the child actor component to their concrete types (ABP_Parent and BP_Child, respectively).
  4. Using the blueprint editor, set any custom data in the defaults of the BP_Child child actor component inside BP_Parent.
  5. Close the engine and reopen BP_Parent.
  6. Observe the data you just set for the child actor component in BP_Parent is gone.
  7. If you are using 4.19 observe that reassigning the child actor component child class type to BP_Child causes an engine crash.

I believe this situation is caused by the circular reference between BP_Parent and ABP_Parent. Simply going into ABP_Parent and removing the component BP_Parent and any casts to it in the ABP_Parent event graph seems to resolve the issue for me. Though, this workaround is not ideal and imposes some quite restrictive design choices on the developer.

Link to mwe attached.