GameLift OnTerminate never seems to trigger.


We are debugging some issues on our EC2 game servers where we get a GameLift event: SERVER_PROCESS_TERMINATED_UNHEALTHY, however we don't ever seem to receive the OnTerminate callback on the server. GameLift then launches a new instance of our server when the prior instance is still running (I have confirmed this via shelling into the instance and checking the running processes).

I have attempted to test this behavior on a local GameLift Anywhere instance, and it appears that regardless of what happens with OnHealthCheck, we never get the OnTerminate callback. I've tried returning 'false' AND just stalling out OnHealthCheck for several minutes; but it just continues to call OnHealthCheck endlessly regardless.

Does OnTerminate work with Anywhere instances? Can you confirm OnTerminate is supposed to call when OnHealthCheck returns false, or fails to return at all?

Gamelift Server SDK version 5, using this in Unreal 4.27

  • Hey JonG, when you say OnTerminate, are you referring to the callback, onProcessTerminate provided to ProcessReady?

  • Additionally, GameLift Anywhere only works for GameLift Server SDK versions 5 and above.

  • Yes I am referring to onProcessTerminate inside ProcessReady. Also apologies I had our GameLift Server SDK incorrect - it was/is actually 5.0. I'll update the original post.

asked 3 months ago217 views
1 Answer

Hey JonG,

Thanks for bringing this to our attention. This situation doesn't sound expected, so I've relayed this to our engineering team. They have an item in their backlog to try and reproduce the situation you described and will get back to you once they have more info.

Regards, Jackson

answered 3 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions