References of inherited component is cleared on blueprint update

Build Type: ‘Binary’ build from the Unreal Launcher
Build version: 4.14.3-3249277

Decription: References on component gets cleared when updating parent actor blueprint

Repro project includes:

  • Clean c++ project created form UE launcher without any engine/starter content
  • One c++ class UTestSceneComponent derived from USceneComponent with UPROPERTY(EditAnywhere) AActor* testActor
  • One Actor blueprint TestActor_BP with a UTestSceneComponent
  • One NewMap level with a TestActor_BP

Repro Steps:

  1. Open NewMap
  2. Select TestActor_BP in the world outliner panel
  3. Select TestScene (Inherited) in the details panel
  4. Note that the “Test Actor” property is set to TestActor_BP
  5. Open/Edit the TestActor_BP blueprint
  6. Edit any value in ClassDefualts (e.g. TickInterval from 0.0 to 1.0)
  7. Compile and save the blueprint
  8. Note that TestScene (Inherited):s “Test Actor” property is now None in the details panel

Issue occurs 100% of the timefor me with these steps

System Specs: reference card

Am I perhaps using this component in an officially unsupported way? is there a workaround/right way to implement this behavior?

Hey j_zeitler-

Thank you for submitting a bug report. I have reproduced this issue and logged a report for it here Unreal Engine Issues and Bug Tracker (UE-41523) . You can track the report’s status as the issue is reviewed by our development staff. Please be aware that this issue may not be prioritized or fixed soon.

Cheers

Thanks ,
Great to get some UE eyes on this

Saw this by the way:

[…] setting the pointer to point to
an instance of the same blueprint will
cause the pointer to reset to “None”

The issue actually happens regardless what (actor) instance the pointer points to.

This also seem to happen with references in level sequences. haven’t tested that as thoroughly though

Okay, so the bug is not as severe as I thought for Level Sequences. Still annoying though. For level sequences it has to do with referencing blueprint instances in sub-levels. Repro is:

  1. start a fresh project
  2. make two levels (main.umap and sub.umap)
  3. load main in the editor
  4. drag-drop sub into the levels list and set it to initially visible+loaded or always loaded
  5. create a level sequence, mainSeq
  6. drop mainSeq into main and set it to autoplay
  7. drop a cube into sub
  8. make a blueprint, BP_cube from the cube
  9. open mainSeq from the content browser
  10. drop in cube into mainSeq from the world outliner
  11. create some transform animation for the cube track
  12. save all
  13. play in editor (note that the cube is moving)
  14. open BP_cube
  15. change anything in class defaults (like TickInterval)
  16. compile and save BP_cube
  17. play in editor again (note that cube is not moving, lvlseq ref is broken)

should I open a new bug report for this? Since it’s between levels it may have to do with the lazyPtr implementation or something rather than the regular references above

the lvlseq bug is tested with 4.15.1