I have a custom asset (UObject, with a custom factory and AssetDefinition) that has an instanced array property of EditInlineNew UObjects. Something along the lines of:
UCLASS(DefaultToInstanced, EditInlineNew, Abstract)
class TEST_API UTestFeature: public UObject
{
...
};
UCLASS(Const, Blueprintable)
class TEST_API UTestDefinition: public UObject
{
...
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Instanced)
TArray<TObjectPtr<UTestFeature>> Features;
};
Instances of definitions can be created through the content browser and work as intended. Hot-reloading is functional, up until the default editor is opened for the definition. After which, any hot-reload crashes the editor with the following:
Fatal error: [File:D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectHash.cpp] [Line: 351] Trying to modify UObject map (FindOrAdd) that is currently being iterated. Please make sure you're not creating new UObjects or Garbage Collecting while iterating UObject hash tables.
UnrealEditor_CoreUObject
UnrealEditor_CoreUObject
UnrealEditor_CoreUObject
UnrealEditor_CoreUObject
UnrealEditor_CoreUObject
UnrealEditor_CoreUObject
UnrealEditor_CoreUObject
UnrealEditor_CoreUObject
UnrealEditor_CoreUObject
UnrealEditor_CoreUObject
UnrealEditor_CoreUObject
UnrealEditor_CoreUObject
UnrealEditor_UnrealEd
UnrealEditor_UnrealEd
UnrealEditor_UnrealEd
UnrealEditor_UnrealEd
UnrealEditor_CoreUObject
UnrealEditor_CoreUObject
UnrealEditor_Core
UnrealEditor_Core
UnrealEditor_Core
UnrealEditor_HotReload
UnrealEditor_HotReload
UnrealEditor_HotReload
UnrealEditor_HotReload
UnrealEditor_Core
UnrealEditor_Core
UnrealEditor
UnrealEditor
UnrealEditor
UnrealEditor
UnrealEditor
UnrealEditor
kernel32
ntdll
Is there an issue with my usage of Instanced/EditInlineNew, or is this unintended engine behaviour? If it is the latter, needing to get the code functional ASAP, what is my best option?