Description

Typically users are unable to select a structs that reference each other but I was able to find a way around this by manipulating the Do Not Save functionality when closing the editor.

Not a regression as this is occurring in 4.18 as well. Can regress further but I'm pretty sure this is an extreme edge case.

Steps to Reproduce
  1. Open any project in the editor
  2. Create a struct named CircRef_A
  3. Create a struct named CircRef_B
  4. Open CircRef_A and set the first member variable type to CircRef_B
  5. Save CircRef_A
  6. Change the variable type from CircRef_B to anything else but Do Not save
  7. Open CircRef_B and change the variable type to CircRef_A and save CircRef_B
  8. Close the editor and Do Not Save CircRef_A
  9. Reopen the project
  10. Attempt to open either of the structures

Result: Crash

Callstack
UE4Editor_CoreUObject!IsInAsyncLoadingThreadCoreUObjectInternal() asyncloading.cpp:6723 
UE4Editor_CoreUObject!GetObjectsWithOuter() uobjecthash.cpp:635 
UE4Editor_Engine!UUserDefinedStruct::RecursivelyPreload() userdefinedstruct.cpp:260 
UE4Editor_CoreUObject!PreloadInnerStructMembers() propertystruct.cpp:25 
UE4Editor_CoreUObject!UStructProperty::LinkInternal() propertystruct.cpp:76 
UE4Editor_CoreUObject!UStruct::Link() class.cpp:613 
UE4Editor_CoreUObject!UScriptStruct::Link() class.cpp:2211 
UE4Editor_CoreUObject!UStruct::StaticLink() class.cpp:544 
UE4Editor_Engine!UUserDefinedStruct::RecursivelyPreload() userdefinedstruct.cpp:269 
UE4Editor_CoreUObject!PreloadInnerStructMembers() propertystruct.cpp:25 
UE4Editor_CoreUObject!UStructProperty::LinkInternal() propertystruct.cpp:76 
UE4Editor_CoreUObject!UStruct::Link() class.cpp:613 
UE4Editor_CoreUObject!UScriptStruct::Link() class.cpp:2211 
UE4Editor_CoreUObject!UStruct::StaticLink() class.cpp:544 
UE4Editor_Engine!UUserDefinedStruct::RecursivelyPreload() userdefinedstruct.cpp:269 
UE4Editor_CoreUObject!PreloadInnerStructMembers() propertystruct.cpp:25 
UE4Editor_CoreUObject!UStructProperty::LinkInternal() propertystruct.cpp:76 
UE4Editor_CoreUObject!UStruct::Link() class.cpp:613 
UE4Editor_CoreUObject!UScriptStruct::Link() class.cpp:2211 
UE4Editor_CoreUObject!UStruct::StaticLink() class.cpp:544 
UE4Editor_Engine!UUserDefinedStruct::RecursivelyPreload() userdefinedstruct.cpp:269 
UE4Editor_CoreUObject!PreloadInnerStructMembers() propertystruct.cpp:25 
UE4Editor_CoreUObject!UStructProperty::LinkInternal() propertystruct.cpp:76 
UE4Editor_CoreUObject!UStruct::Link() class.cpp:613 
UE4Editor_CoreUObject!UScriptStruct::Link() class.cpp:2211 
UE4Editor_CoreUObject!UStruct::StaticLink() class.cpp:544 
UE4Editor_Engine!UUserDefinedStruct::RecursivelyPreload() userdefinedstruct.cpp:269 
UE4Editor_CoreUObject!PreloadInnerStructMembers() propertystruct.cpp:25 
UE4Editor_CoreUObject!UStructProperty::LinkInternal() propertystruct.cpp:76 
UE4Editor_CoreUObject!UStruct::Link() class.cpp:613 
UE4Editor_CoreUObject!UScriptStruct::Link() class.cpp:2211 
UE4Editor_CoreUObject!UStruct::StaticLink() class.cpp:544 
UE4Editor_Engine!UUserDefinedStruct::RecursivelyPreload() userdefinedstruct.cpp:269 
UE4Editor_CoreUObject!PreloadInnerStructMembers() propertystruct.cpp:25 
UE4Editor_CoreUObject!UStructProperty::LinkInternal() propertystruct.cpp:76 
UE4Editor_CoreUObject!UStruct::Link() class.cpp:613 
UE4Editor_CoreUObject!UScriptStruct::Link() class.cpp:2211 
UE4Editor_CoreUObject!UStruct::StaticLink() class.cpp:544 
UE4Editor_Engine!UUserDefinedStruct::RecursivelyPreload() userdefinedstruct.cpp:269 
UE4Editor_CoreUObject!PreloadInnerStructMembers() propertystruct.cpp:25 
UE4Editor_CoreUObject!UStructProperty::LinkInternal() propertystruct.cpp:76 
UE4Editor_CoreUObject!UStruct::Link() class.cpp:613 
UE4Editor_CoreUObject!UScriptStruct::Link() class.cpp:2211 
UE4Editor_CoreUObject!UStruct::StaticLink() class.cpp:544 
UE4Editor_Engine!UUserDefinedStruct::RecursivelyPreload() userdefinedstruct.cpp:269 
UE4Editor_CoreUObject!PreloadInnerStructMembers() propertystruct.cpp:25 
UE4Editor_CoreUObject!UStructProperty::LinkInternal() propertystruct.cpp:76 
UE4Editor_CoreUObject!UStruct::Link() class.cpp:613 
UE4Editor_CoreUObject!UScriptStruct::Link() class.cpp:2211 
UE4Editor_CoreUObject!UStruct::StaticLink() class.cpp:544 
UE4Editor_Engine!UUserDefinedStruct::RecursivelyPreload() userdefinedstruct.cpp:269 
UE4Editor_CoreUObject!PreloadInnerStructMembers() propertystruct.cpp:25 
UE4Editor_CoreUObject!UStructProperty::LinkInternal() propertystruct.cpp:76 
UE4Editor_CoreUObject!UStruct::Link() class.cpp:613 
UE4Editor_CoreUObject!UScriptStruct::Link() class.cpp:2211 
UE4Editor_CoreUObject!UStruct::StaticLink() class.cpp:544 
UE4Editor_Engine!UUserDefinedStruct::RecursivelyPreload() userdefinedstruct.cpp:269 
UE4Editor_CoreUObject!PreloadInnerStructMembers() propertystruct.cpp:25 
UE4Editor_CoreUObject!UStructProperty::LinkInternal() propertystruct.cpp:76 
UE4Editor_CoreUObject!UStruct::Link() class.cpp:613 
UE4Editor_CoreUObject!UScriptStruct::Link() class.cpp:2211 
UE4Editor_CoreUObject!UStruct::StaticLink() class.cpp:544 
UE4Editor_Engine!UUserDefinedStruct::RecursivelyPreload() userdefinedstruct.cpp:269 
UE4Editor_CoreUObject!PreloadInnerStructMembers() propertystruct.cpp:25

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-51531 in the post.

0
Login to Vote

Won't Fix
ComponentUE - Gameplay - Blueprint
Affects Versions4.184.19
CreatedOct 23, 2017
ResolvedAug 18, 2021
UpdatedAug 18, 2021