Description

When DuplicateWorldForPIE is called and serializes the references in another AlwaysLoaded sublevel, the properties of a ChildActorComponent are confusingly inaccurate.

Steps to Reproduce
  1. Create new Persistent Level (File -> New Level)
  2. Add new Blueprint class derived from Actor (I named it "ChildActor")
  3. Add a Child Actor Component to the actor from step 5 with Child Actor Class = TargetPoint (any class will work)
  4. Set Replicates = true for the actor from step 5 and Replicates = true (category Child Actor Component -> Child Actor Template -> Replication) for the Child Actor from step 6
  5. Add ChildActor to the level
  6. Start PIE with Net Mode = "Play As Client" and Run Under One Process = false
  7. Run the console command "obj list"
Callstack
UE4Editor-Engine-Win64-Debug.dll!UChildActorComponent::Serialize(FArchive & Ar) Line 130 C++
 UE4Editor-Engine-Win64-Debug.dll!FFixupSmartPointersForPIEArchive::operator<<(UObject * & Object) Line 3102 C++
 UE4Editor-Core-Win64-Debug.dll!FBinaryArchiveFormatter::Serialize(UObject * & Value) Line 267 C++
 UE4Editor-Core-Win64-Debug.dll!FStructuredArchiveSlot::operator<<(UObject * & Value) Line 508 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!FObjectProperty::SerializeItem(FStructuredArchiveSlot Slot, void * Value, const void * Defaults) Line 98 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!FProperty::SerializeBinProperty(FStructuredArchiveSlot Slot, void * Data, int ArrayIdx) Line 308 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!UStruct::SerializeBin(FStructuredArchiveSlot Slot, void * Data) Line 1093 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!UObject::SerializeScriptProperties(FStructuredArchiveSlot Slot) Line 1474 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!UObject::Serialize(FStructuredArchiveRecord Record) Line 1377 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!UObject::Serialize(FArchive & Ar) Line 1262 C++
 UE4Editor-Engine-Win64-Debug.dll!AActor::Serialize(FArchive & Ar) Line 716 C++
 UE4Editor-Engine-Win64-Debug.dll!FFixupSmartPointersForPIEArchive::operator<<(UObject * & Object) Line 3102 C++
 UE4Editor-Engine-Win64-Debug.exe.patch_0!operator<<(FArchive & Ar, TArray<AActor *,TSizedDefaultAllocator<32>> & A) Line 1186 C++
 UE4Editor-Engine-Win64-Debug.exe.patch_0!ULevel::Serialize(FArchive & Ar) Line 459 C++
 UE4Editor-Engine-Win64-Debug.dll!FFixupSmartPointersForPIEArchive::operator<<(UObject * & Object) Line 3102 C++
 UE4Editor-Core-Win64-Debug.dll!FBinaryArchiveFormatter::Serialize(UObject * & Value) Line 267 C++
 UE4Editor-Core-Win64-Debug.dll!FStructuredArchiveSlot::operator<<(UObject * & Value) Line 508 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!FObjectProperty::SerializeItem(FStructuredArchiveSlot Slot, void * Value, const void * Defaults) Line 98 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!FProperty::SerializeBinProperty(FStructuredArchiveSlot Slot, void * Data, int ArrayIdx) Line 308 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!UStruct::SerializeBin(FStructuredArchiveSlot Slot, void * Data) Line 1093 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!UObject::SerializeScriptProperties(FStructuredArchiveSlot Slot) Line 1474 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!UObject::Serialize(FStructuredArchiveRecord Record) Line 1377 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!UObject::Serialize(FArchive & Ar) Line 1262 C++
 UE4Editor-Engine-Win64-Debug.dll!UWorld::Serialize(FArchive & Ar) Line 403 C++
 UE4Editor-Engine-Win64-Debug.dll!FFixupSmartPointersForPIEArchive::operator<<(UObject * & Object) Line 3102 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!FArchiveUObject::SerializeSoftObjectPtr(FArchive & Ar, FSoftObjectPtr & Value) Line 79 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!FArchiveUObject::operator<<(FSoftObjectPtr & Value) Line 28 C++
 UE4Editor-Core-Win64-Debug.dll!FBinaryArchiveFormatter::Serialize(FSoftObjectPtr & Value) Line 282 C++
 UE4Editor-Core-Win64-Debug.dll!FStructuredArchiveSlot::operator<<(FSoftObjectPtr & Value) Line 536 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!FSoftObjectProperty::SerializeItem(FStructuredArchiveSlot Slot, void * Value, const void * Defaults) Line 60 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!FProperty::SerializeBinProperty(FStructuredArchiveSlot Slot, void * Data, int ArrayIdx) Line 308 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!UStruct::SerializeBin(FStructuredArchiveSlot Slot, void * Data) Line 1093 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!UObject::SerializeScriptProperties(FStructuredArchiveSlot Slot) Line 1474 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!UObject::Serialize(FStructuredArchiveRecord Record) Line 1377 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!UObject::Serialize(FArchive & Ar) Line 1262 C++
 UE4Editor-Engine-Win64-Debug.exe.patch_0!ULevelStreaming::Serialize(FArchive & Ar) Line 358 C++
 UE4Editor-Engine-Win64-Debug.dll!FFixupSmartPointersForPIEArchive::operator<<(UObject * & Object) Line 3102 C++
 UE4Editor-Core-Win64-Debug.dll!FBinaryArchiveFormatter::Serialize(UObject * & Value) Line 267 C++
 UE4Editor-Core-Win64-Debug.dll!FStructuredArchiveSlot::operator<<(UObject * & Value) Line 508 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!FObjectProperty::SerializeItem(FStructuredArchiveSlot Slot, void * Value, const void * Defaults) Line 98 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!FArrayProperty::SerializeItem(FStructuredArchiveSlot Slot, void * Value, const void * Defaults) Line 299 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!FProperty::SerializeBinProperty(FStructuredArchiveSlot Slot, void * Data, int ArrayIdx) Line 308 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!UStruct::SerializeBin(FStructuredArchiveSlot Slot, void * Data) Line 1093 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!UObject::SerializeScriptProperties(FStructuredArchiveSlot Slot) Line 1474 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!UObject::Serialize(FStructuredArchiveRecord Record) Line 1377 C++
 UE4Editor-CoreUObject-Win64-Debug.dll!UObject::Serialize(FArchive & Ar) Line 1262 C++
 UE4Editor-Engine-Win64-Debug.dll!UWorld::Serialize(FArchive & Ar) Line 403 C++
 UE4Editor-Engine-Win64-Debug.dll!FFixupSmartPointersForPIEArchive::operator<<(UObject * & Object) Line 3102 C++
 UE4Editor-Engine-Win64-Debug.dll!UWorld::DuplicateWorldForPIE(const FString & PackageName, UWorld * OwningWorld) Line 3175 C++
 > UE4Editor-Engine-Win64-Debug.exe.patch_0!ULevelStreaming::RequestLevel(UWorld * PersistentWorld, bool bAllowLevelLoadRequests, ULevelStreaming::EReqLevelBlock BlockPolicy) Line 963 C++
 UE4Editor-Engine-Win64-Debug.exe.patch_0!ULevelStreaming::UpdateStreamingState::__l2::<lambda>() Line 552 C++
 UE4Editor-Engine-Win64-Debug.exe.patch_0!ULevelStreaming::UpdateStreamingState(bool & bOutUpdateAgain, bool & bOutRedetermineTarget) Line 627 C++
 UE4Editor-Engine-Win64-Debug.dll!UWorld::UpdateLevelStreaming() Line 3427 C++
 UE4Editor-Engine-Win64-Debug.dll!UGameViewportClient::Draw(FViewport * InViewport, FCanvas * SceneCanvas) Line 1564 C++
 UE4Editor-Engine-Win64-Debug.dll!FViewport::Draw(bool bShouldPresent) Line 1559 C++
 UE4Editor-UnrealEd-Win64-Debug.dll!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 1919 C++
 UE4Editor-UnrealEd-Win64-Debug.dll!UUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 426 C++
 UE4Editor-Win64-Debug.exe!FEngineLoop::Tick() Line 4836 C++
 UE4Editor-Win64-Debug.exe!EngineTick() Line 63 C++
 UE4Editor-Win64-Debug.exe!GuardedMain(const wchar_t * CmdLine) Line 172 C++
 UE4Editor-Win64-Debug.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 257 C++
 [Inline Frame] UE4Editor-Win64-Debug.exe!invoke_main() Line 102 C++
 UE4Editor-Win64-Debug.exe!__scrt_common_main_seh() Line 288 C++
 kernel32.dll!BaseThreadInitThunk() Unknown
 ntdll.dll!RtlUserThreadStart() Unknown

Have Comments or More Details?

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

1
Login to Vote

Fixed
ComponentUE - Networking
Affects Versions4.26
Target Fix5.0
Fix Commit18449332
Main Commit18449377
CreatedFeb 25, 2021
ResolvedDec 13, 2021
UpdatedJan 7, 2022