Using PIE to connect to Dedicated Server running World Partition crashes

Hey,

I have this error when I try to connect to a Dedicated Server running a based OpenWorld.umap (no modifications).

Assertion failed: PIEInstanceID != INDEX_NONE [File:D:\UnrealEngine\5.0\UnrealEngine\Engine\Source\Runtime\Engine\Private\WorldPartition\WorldPartitionLevelStreamingDynamic.cpp] [Line: 395]

The client crashes but the server doesn’t. On the server I just get this timeout error

[2022.04.18-11.30.29:809][540]LogNet: Warning: UNetConnection::Tick: Connection TIMED OUT. Closing connection.. Elapsed: 60.01, Real: 60.01, Good: 60.01, DriverTime: 84.81, Threshold: 60.00, [UNetConnection] RemoteAddr: 127.0.0.1:62957, Name: IpConnection_2147482508, Driver: GameNetDriver IpNetDriver_2147482537, IsServer: YES, PC: PlayerController_2147482504, Owner: PlayerController_2147482504, UniqueId: INVALID
[2022.04.18-11.30.29:813][540]LogNet: Error: UEngine::BroadcastNetworkFailure: FailureType = ConnectionTimeout, ErrorString = UNetConnection::Tick: Connection TIMED OUT. Closing connection.. Elapsed: 60.01, Real: 60.01, Good: 60.01, DriverTime: 84.81, Threshold: 60.00, [UNetConnection] RemoteAddr: 127.0.0.1:62957, Name: IpConnection_2147482508, Driver: GameNetDriver IpNetDriver_2147482537, IsServer: YES, PC: PlayerController_2147482504, Owner: PlayerController_2147482504, UniqueId: INVALID, Driver = GameNetDriver IpNetDriver_2147482537

Previous to that it accepts the request before the client crashes. This doesn’t happen on a regular map with no World Partition active.

Any help would be greatly appreciated.

The first thing you could try to do to see what’s happening is to get the logs from the client to see what happens before it crashes. Last I checked, you should be able to find your crash logs through this path: c:\Program Files\Unreal Engine\4.0\Engine\Programs\CrashReportClient\Saved\

Once you find out the errors that make your client crash, it should be easier to narrow down the cause of the issue.

I posted the error, this is using UE5.0 and it works fine in UE4.

Assertion failed: PIEInstanceID != INDEX_NONE [File:D:\UnrealEngine\5.0\UnrealEngine\Engine\Source\Runtime\Engine\Private\WorldPartition\WorldPartitionLevelStreamingDynamic.cpp] [Line: 395] 




[2022.04.19-15.35.12:312][322]LogWindows: Error: === Critical error: ===
[2022.04.19-15.35.12:312][322]LogWindows: Error: 
[2022.04.19-15.35.12:312][322]LogWindows: Error: Assertion failed: PIEInstanceID != INDEX_NONE [File:D:\UnrealEngine\5.0\UnrealEngine\Engine\Source\Runtime\Engine\Private\WorldPartition\WorldPartitionLevelStreamingDynamic.cpp] [Line: 395]

There’s someone else who had the exact same error, and they solved it by replacing the PIEInstanceID != INDEX_NONE statement to:
if(PIEInstanceID == INDEX_NONE) {
PIEInstanceID = 1;
};

Like they said in the thread, it’s a temporary solution, but it seems that creating an empty map solves the problem as well. Not sure if that solution would work for you, but it’s worth giving the if statement a try.

Yeah I saw that post but it’s not really a fix it’s just over-riding the issue and I don’t know what it would break down the line. I talked to someone who said they could use a World Partition map with a dedicated server and connect via PIE so I’m truly confused by it. For now I have been using a temporary non-WP map and when I need to test it properly I can use a packaged game build to connect, which works because it’s not PIE mode. However this seems like a bug as it’s out of the box.

I think this is a serious bug that Epic team has to consider first, I posted the same bug serval months ago and find where is the bug in the source. World partition is import for future open-world online games and I’m porting my Unity online game project to UE5 currently, this bug makes the progress stops so far.