When a user loads into a level that spawns replicated actors using manually placed blueprints twice using ServerTravel with Seamless Travel enabled it will crash. It looks like the engine can't find the replicated actor to be spawned in the NetGUIDLookup map which is being set to default values in PackageClientMap.cpp line 2300.
Found in 4.23.0 CL#8286587
Reproduced in 4.24 Main CL#8781358
1. Create a new project.
2. Create a blueprint that spawns any number of actors on the world on Begin Play. Place it in the default level.
3. Make a blueprint, SeamlessBP, that activates a seamless travel to the default level when the player overlaps with it using "Execute Console Command" when it has Authority (Node setup in attached image). Place it in the default level.
4. Alter the gamemode setting "Use Seamless Travel" to true.
5. Go to Editor Preferences->Play->Multiplayer Options and set:
a. "Use Single Process" to false
b. "Editor Multiplayer Mode" to "Play As Client"
*Settings shown in attached image.
6. Play the scene and run into SeamlessBP.
7. After the level loads run into the SeamlessBP again.
Results: The project crashes.
Expected: The level would load like normal.
LoginId:9a8d08644d702ac44f074090ac311686
EpicAccountId:580fb2844ad145d79dff08f42acea7c6
Assertion failed: !It.Value().Object.IsValid() || NetGUIDLookup.FindRef(It.Value().Object) == It.Key() || It.Value().ReadOnlyTimestamp != 0 [Link Removed] [Line: 2298] Failed to validate ObjectLookup map in UPackageMap. Object '/Game/Repro/ReplicatedActor_BP' was not in the NetGUIDLookup map with with value '23'.
UE4Editor_Core!FWindowsErrorOutputDevice::Serialize() [d:\build\++ue4\sync\engine\source\runtime\core\private\windows\windowserroroutputdevice.cpp:79]
UE4Editor_Core!FOutputDevice::LogfImpl() [d:\build\++ue4\sync\engine\source\runtime\core\private\misc\outputdevice.cpp:71]
UE4Editor_Core!AssertFailedImplV() [d:\build\++ue4\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:101]
UE4Editor_Core!FDebug::CheckVerifyFailedImpl() [d:\build\++ue4\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:445]
UE4Editor_Engine!DispatchCheckVerify<void,<lambda_a48561c3fb2315a1595df2ee9616cd53> >() [d:\build\++ue4\sync\engine\source\runtime\core\public\misc\assertionmacros.h:164]
UE4Editor_Engine!FNetGUIDCache::CleanReferences() [d:\build\++ue4\sync\engine\source\runtime\engine\private\packagemapclient.cpp:2298]
UE4Editor_Engine!FSeamlessTravelHandler::Tick() [d:\build\++ue4\sync\engine\source\runtime\engine\private\world.cpp:6285]
UE4Editor_Engine!UEngine::TickWorldTravel() [d:\build\++ue4\sync\engine\source\runtime\engine\private\unrealengine.cpp:11981]
UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\editorengine.cpp:1610]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\unrealedengine.cpp:407]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:4257]
UE4Editor!GuardedMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launch.cpp:173]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:147]
UE4Editor!WinMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:279]
UE4Editor!__scrt_common_main_seh() [d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-80587 in the post.
6 |
Component | UE - Networking |
---|---|
Affects Versions | 4.23, 4.24 |
Target Fix | 4.24 |
Created | Sep 19, 2019 |
---|---|
Resolved | Oct 1, 2019 |
Updated | Oct 28, 2019 |