I am having a problem where my fleets can’t create game sessions, or rather, they are created and almost immediately are terminated.
In the fleet events view I get the message that the fleet apparently terminated a process because it didn’t report healthy for 3 minutes, yet when I download the log for the terminated game session I can see that the game session itself wasn’t even alive for a full minute (no crash / errors in the log either), and it took less that thirty seconds to reach the point where I call ProcessReady. My health checks are just a lambda that returns true also.
I don’t think this is a specs issue, as the fleet that I’m trying to create a game session for only has a one process limit and a single process of that build doesn’t even reach 1gb of memory usage (this is a lobby server that doesn’t even have a single player yet).
Same thing is happening with the game server fleet when I try to create a session manually through the aws cli, which makes sense since it is essentially the same build but is using a different map.
I am using Unreal Engine 4.22. The logic that I’m following to set up the game session in game is as follows:
- Process starts
- In the game mode constructor, call InitSDK for the gamelift module.
- Bind the functions for OnTerminate ( call ProcessEnding() ), onHealthCheck( return true ), OnStartGameSession ( call ActivateGameSession() ).
- When the Process reaches the “WaitingToStart” state, after it has loaded the map and chosen a server port to listen for connections, I finish setting up the process parameters with this port and then call ProcessReady.
Am I doing anything blatantly wrong here? Any help would be greatly appreciated, thanks in advance!.