I am packaging a dedicated server with a map that uses world partitioning. There’s an entry map that connects to the server, and when I start a client from that entry map from the editor, in “Standalone Game” mode, I get kicked out immediately after connecting, with the following messages in the server log:
LogPlayerController: Warning: ServerUpdateLevelVisibility() ignored non-existant package. PackageName='/Memory/OpenWorld_MainGrid_L2_X-1_Y-1_DL0', FileName='/Memory/OpenWorld_MainGrid_L2_X-1_Y-1_DL0'
LogNet: UNetConnection::Close: CloseReason:
LogNet: - Result=MissingLevelPackage, ErrorContext="/Memory/OpenWorld_MainGrid_L2_X-1_Y-1_DL0,/Memory/OpenWorld_MainGrid_L2_X-1_Y-1_DL0"
Notably, this only happens when starting the client from the editor. A packaged client works as expected.
This seems to be connected to world partitioning (I can connect fine to a non-partitioned map like the ThirdPersonExampleMap, but even the unmodified “Open World” level will fail. What could I be missing?
2 Likes
For the sake of completeness, if I try to connect with a PIE client, the editor crashes with an assertion:
Assertion failed: PIEInstanceID != INDEX_NONE [File:D:\Source\UnrealEngine\Engine\Source\Runtime\Engine\Private\WorldPartition\WorldPartitionLevelStreamingDynamic.cpp] [Line: 395]
UnrealEditor_Engine!UWorldPartitionLevelStreamingDynamic::FinalizeRuntimeLevel() [D:\Source\UnrealEngine\Engine\Source\Runtime\Engine\Private\WorldPartition\WorldPartitionLevelStreamingDynamic.cpp:395]
UnrealEditor_Engine!<lambda_28f6e57365b2a69c5efc67b5b153067f>::operator()() [D:\Source\UnrealEngine\Engine\Source\Runtime\Engine\Private\WorldPartition\WorldPartitionLevelHelper.cpp:318]
UnrealEditor_Engine!TBaseFunctorDelegateInstance<void __cdecl(FName const &,UPackage *,enum EAsyncLoadingResult::Type),FDefaultDelegateUserPolicy,<lambda_28f6e57365b2a69c5efc67b5b153067f> >::ExecuteIfSafe() [D:\Source\UnrealEngine\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:838]
UnrealEditor_CoreUObject!FAsyncPackage::CallCompletionCallbacks() [D:\Source\UnrealEngine\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncLoading.cpp:6646]
UnrealEditor_CoreUObject!FAsyncLoadingThread::ProcessLoadedPackages() [D:\Source\UnrealEngine\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncLoading.cpp:4300]
UnrealEditor_CoreUObject!FAsyncLoadingThread::TickAsyncLoading() [D:\Source\UnrealEngine\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncLoading.cpp:4441]
UnrealEditor_CoreUObject!FAsyncLoadingThread::FlushLoading() [D:\Source\UnrealEngine\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncLoading.cpp:6833]
UnrealEditor_CoreUObject!FlushAsyncLoading() [D:\Source\UnrealEngine\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncPackageLoader.cpp:637]
UnrealEditor_Engine!UWorld::FlushLevelStreaming() [D:\Source\UnrealEngine\Engine\Source\Runtime\Engine\Private\World.cpp:4203]
UnrealEditor_Engine!UWorld::BlockTillLevelStreamingCompleted() [D:\Source\UnrealEngine\Engine\Source\Runtime\Engine\Private\World.cpp:3863]
UnrealEditor_Engine!TBaseUObjectMethodDelegateInstance<0,UWorldPartition,void __cdecl(void),FDefaultDelegateUserPolicy>::ExecuteIfSafe() [D:\Source\UnrealEngine\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:611]
UnrealEditor_Engine!TMulticastDelegate<void __cdecl(void),FDefaultDelegateUserPolicy>::Broadcast() [D:\Source\UnrealEngine\Engine\Source\Runtime\Core\Public\Delegates\DelegateSignatureImpl.inl:967]
UnrealEditor_Engine!AWorldSettings::NotifyMatchStarted() [D:\Source\UnrealEngine\Engine\Source\Runtime\Engine\Private\WorldSettings.cpp:300]
UnrealEditor_CoreUObject!UFunction::Invoke() [D:\Source\UnrealEngine\Engine\Source\Runtime\CoreUObject\Private\UObject\Class.cpp:5912]
UnrealEditor_CoreUObject!UObject::ProcessEvent() [D:\Source\UnrealEngine\Engine\Source\Runtime\CoreUObject\Private\UObject\ScriptCore.cpp:2003]
UnrealEditor_Engine!AActor::ProcessEvent() [D:\Source\UnrealEngine\Engine\Source\Runtime\Engine\Private\Actor.cpp:1030]
UnrealEditor_Engine!FRepLayout::CallRepNotifies() [D:\Source\UnrealEngine\Engine\Source\Runtime\Engine\Private\RepLayout.cpp:4548]
UnrealEditor_Engine!FObjectReplicator::CallRepNotifies() [D:\Source\UnrealEngine\Engine\Source\Runtime\Engine\Private\DataReplication.cpp:2170]
UnrealEditor_Engine!UActorChannel::ProcessBunch() [D:\Source\UnrealEngine\Engine\Source\Runtime\Engine\Private\DataChannel.cpp:2965]
UnrealEditor_Engine!UActorChannel::ReceivedBunch() [D:\Source\UnrealEngine\Engine\Source\Runtime\Engine\Private\DataChannel.cpp:2768]
UnrealEditor_Engine!UChannel::ReceivedSequencedBunch() [D:\Source\UnrealEngine\Engine\Source\Runtime\Engine\Private\DataChannel.cpp:416]
UnrealEditor_Engine!UChannel::ReceivedNextBunch() [D:\Source\UnrealEngine\Engine\Source\Runtime\Engine\Private\DataChannel.cpp:877]
UnrealEditor_Engine!UChannel::ReceivedRawBunch() [D:\Source\UnrealEngine\Engine\Source\Runtime\Engine\Private\DataChannel.cpp:528]
UnrealEditor_Engine!UNetConnection::ReceivedPacket() [D:\Source\UnrealEngine\Engine\Source\Runtime\Engine\Private\NetConnection.cpp:3202]
UnrealEditor_Engine!UNetConnection::ReceivedRawPacket() [D:\Source\UnrealEngine\Engine\Source\Runtime\Engine\Private\NetConnection.cpp:1594]
UnrealEditor_OnlineSubsystemUtils!UIpNetDriver::TickDispatch() [D:\Source\UnrealEngine\Engine\Plugins\Online\OnlineSubsystemUtils\Source\OnlineSubsystemUtils\Private\IpNetDriver.cpp:1396]
UnrealEditor_Engine!TBaseUObjectMethodDelegateInstance<0,UNetDriver,void __cdecl(float),FDefaultDelegateUserPolicy>::ExecuteIfSafe() [D:\Source\UnrealEngine\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:611]
UnrealEditor_Engine!TMulticastDelegate<void __cdecl(float),FDefaultDelegateUserPolicy>::Broadcast() [D:\Source\UnrealEngine\Engine\Source\Runtime\Core\Public\Delegates\DelegateSignatureImpl.inl:967]
UnrealEditor_Engine!UWorld::Tick() [D:\Source\UnrealEngine\Engine\Source\Runtime\Engine\Private\LevelTick.cpp:1373]
UnrealEditor_UnrealEd!UEditorEngine::Tick() [D:\Source\UnrealEngine\Engine\Source\Editor\UnrealEd\Private\EditorEngine.cpp:1777]
UnrealEditor_UnrealEd!UUnrealEdEngine::Tick() [D:\Source\UnrealEngine\Engine\Source\Editor\UnrealEd\Private\UnrealEdEngine.cpp:474]
UnrealEditor!FEngineLoop::Tick() [D:\Source\UnrealEngine\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:5215]
UnrealEditor!GuardedMain() [D:\Source\UnrealEngine\Engine\Source\Runtime\Launch\Private\Launch.cpp:183]
UnrealEditor!GuardedMainWrapper() [D:\Source\UnrealEngine\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:147]
UnrealEditor!LaunchWindowsStartup() [D:\Source\UnrealEngine\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:283]
UnrealEditor!WinMain() [D:\Source\UnrealEngine\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:330]
UnrealEditor!__scrt_common_main_seh() [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
That probably should not happen, either. Again, this only happens in maps with world partitioning.
NEVQ151
(NEVQ151)
September 9, 2022, 1:41pm
3
Hey did you find a solution for the first issue that you posted?
Thanks
ennorehling
(Enno Rehling)
September 13, 2022, 2:20pm
4
No. I sent a report and test project to Epic in July, but haven’t heard back from them.
ennorehling
(Enno Rehling)
September 20, 2022, 8:15am
5
Update: Epic have created a ticket for the issue. I don’t know if that means they reproduced it, but it has a “target fix” attribute of 5.1, which gives me hope.
2 Likes
Xayvair
(Xayvair)
January 19, 2023, 6:27pm
6
even though this says resolved its still happening for me in 5.1 any ideas?
Xayvair
(Xayvair)
January 21, 2023, 10:07am
7
Even though this ticket says it is resolved. The issue still seems to be occurring for me in 5.1, are you still getting this issue as well?
Talad
(Talad)
February 16, 2023, 4:45pm
8
It happens for me in 5.1.1. It happens only if the client is packaged (shipping or development is the same). A non packaged client works.
The result is that the client connecting is kicked out as its missing a map and so cannot login in the server (dedicated server setup) I get this error:
[2023.02.16-17.04.07:068][338]LogNet: UNetConnection::SendCloseReason:
[2023.02.16-17.04.07:068][338]LogNet: - Result=MissingLevelPackage, ErrorContext=“/Game/Maps/MainWorld/Yliakum/Generated /MainGrid_L7_X-1_Y-1_DL0,/Game/Maps/MainWorld/Yliakum/Generated /MainGrid_L7_X-1_Y-1_DL0”
Adding manually the maps to “Packaging->List of maps to include in a package build” in settings doesnt help. The maps do not end up in the packaged game (I checked with unpak)
I guess the startup map is not included in the package as the engine thinks everything is worldpartition? I can’t release our game due to this. Any help please?
Xayvair
(Xayvair)
February 18, 2023, 12:21pm
10
I think I found the issue which is frustrating but a possible solution. If you have a menu level that goes to your partition level. You will have to make the menu level apart of the partition level streaming levels. But the major issue is that the default game map must be the partition level
Xayvair
(Xayvair)
February 18, 2023, 12:26pm
11
its just not an ideal scenario for me haha
I had this issue with PIE client and uncooked server. Was able to workaround by re-applying the reverted change found here, looks like there are still issues with the content bundles in 5.1: https://github.com/EpicGames/UnrealEngine/commit/611e2f1271c1172bf73b264dbdc10df87c1f5098
1 Like
zillionnn
(zillionnn)
July 20, 2023, 4:43pm
13
i tried use world partition in server map, same issue
tanis2000
(Valerio Santinelli)
December 21, 2023, 11:05am
14
This is still relevant in 5.3.2
Is there an actual solution?
sigma2082
(sigma老哥)
January 16, 2024, 4:06pm
15
Same issue found in 5.2 when enable World Partition in ds server.
Have not found the solution…
sigma2082
(sigma老哥)
January 29, 2024, 2:51am
16
Disable WP in ds, same issue also happened…
Hello everyone!
I have found how to fix this bug!
First of all, I want to say, that EpicGames completely broke possibility to use not-builded dedicated server with World Partition map with builded game client.
You cannot use simple .bat file:
“unreal path” projectName.uproject -server -log
To run dedicated server you should build it too. For example:
“unreal path” BuildCookRun -nocompileeditor -projectName.uproject" -nop4 -build -cook -compressed -stage -noclient -server -serverplatform=Win64 -serverconfig=Development -pak -archive -archivedirectory=“%~dp0\DedicatedServerBuild” -utf8output
1 Like
alexdjq
(alexdjq)
July 23, 2024, 4:02am
18
Hello guys, our team have found the solution. There are two main reasons for the problem:
The package name is different between PIE client and cooked DS, so the DS Server will close the connection if the package name mismatched.
Under DS, the package name start with “/Game/ThirdPerson/…”
Under PIE, the package name start with “/Memory/”
There is a bug if a game has both world partition map and non world partition map, duing the DS cooking process, they will affect each other, and can’t generate world partition information properly.
We fix the problem by the following code:
We just compare the hash value.
Apply variables before generate a map every time.
After this, a PIE client can connect a cooked DS Server and work properly.
4 Likes
Hey alex thanks for the fix i havent tested it yet although i am having this issue could you provide the files to make thease changes and have you considered opening a PR on github to merge this.
Thanks Dante.
(Edit)
1st Picture: LevelUtils.cpp
2nd Picture: WorldPartitionRuntimeSpatialHash.cpp