IOS Null OnlineSubsystem Crash

When making a simple null onlinesubsystem direct ip join multiplayer game, my ios client was the only one that would crash (android works, windows works)

Finally figured it out and just wanted to share in case anyone else runs into this:

Symptoms:
Host on pc using “execute console command: open {map}?listen”
and joining on iphone using “execute console command: open {host}”

Iphone would start and crash almost immediatley.

Iphone logs:


[2021.04.01-19.33.38:356][117]LogIOS: FSocketSubsystemIOS::InternalBSDSocketFactory [2021.04.01-19.33.38:363][117]LogOnline: OSS: Creating online subsystem instance for: NULL [2021.04.01-19.33.38:364][117]LogOnlineSession: Display: OSS: FOnlineSessionIOS::RegisterPlayer - not implemented [2021.04.01-19.33.38:364][117]LogOutputDevice: Warning: Script Stack (1 frames): PlayerState.OnRep_UniqueId

Host logs:


LogNet: NotifyAcceptingConnection accepted from: 192.168.1.1:60854
LogHandshake: SendConnectChallenge. Timestamp: 4.962889, Cookie: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
LogNet: NotifyAcceptingConnection accepted from: 192.168.1.1:60854
LogHandshake: SendChallengeAck. InCookie: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
LogNet: Server accepting post-challenge connection from: 192.168.1.1:60854
PacketHandlerLog: Loaded PacketHandler component: Engine.EngineHandlerComponentFactory (StatelessConnectHandlerComponent)
LogNet: NotifyAcceptedConnection: Name: FpsTest, TimeStamp: 04/01/21 15:54:12, [UNetConnection] RemoteAddr: 192.168.1.1:60854, Name: IpConnection_4, Driver: GameNetDriver IpNetDriver_4, IsServer: YES, PC: NULL, Owner: NULL, UniqueId: INVALID
LogNet: AddClientConnection: Added client connection: [UNetConnection] RemoteAddr: 192.168.1.1:60854, Name: IpConnection_4, Driver: GameNetDriver IpNetDriver_4, IsServer: YES, PC: NULL, Owner: NULL, UniqueId: INVALID
LogNet: NotifyAcceptingChannel Control 0 server World /Game/Maps/UEDPIE_0_FpsTest.FpsTest: Accepted
LogNet: Remote platform little endian=1
LogNet: This platform little endian=1
LogNet: Login request: ?Name=Unknown userId: UNKNOWN platform: IOS
LogNet: Client netspeed is 10000
LogNet: Join request: /Game/Maps/Menu?Name=Unknown?SplitscreenCount=1
LogBlueprintUserMessages: [LaserWeapon_GEN_VARIABLE_Laser_C_CAT_1] Server: WEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
LogBlueprintUserMessages: [FirstPersonCharacter_C_1] Server: BEGINPLAY FIRSTPERSONCHARACTER
LogNet: Join succeeded: Unknown

The solution was basically that, even though I had the onlinesubsystem set in default engine, iosengine.ini was overriding this (the default one pushed from the engine), so just editing this file (the one copied in temp) or editing the “master” one in C:\Program Files\Epic Games\UE_4.25\Engine\Config\IOS\IOSEngine.ini resolved the issue for me.

You could also just edit this according to Setting Device Profiles | Unreal Engine Documentation

Just sharing in hopes that it prevents someone else from going on the wild chase I had to.

1 Like

Thanks, mate. Change DefaultPlatformService from IOS to NULL and everything works just fine.