How to debug issues with GameLift AnyWhere InitSDK()?

0

I've got several products running on GameLift using the 3.0.4 SDK, without any problems. We've now decided we want to utilize GameLift AnyWhere for quicker turnaround when testing and we have thus upgraded the SDK to 5.1.1. Unreal Engine is at 5.3.

I've followed the instructions here: https://aws.amazon.com/blogs/aws/introducing-amazon-gamelift-anywhere-run-your-game-servers-on-your-own-infrastructure/ and https://docs.aws.amazon.com/gamelift/latest/developerguide/unreal-plugin-anywhere.html to setup a location, fleet, compute and token.

When the server starts up, it passes all the arguments correctly to the SDK, but it fails the handshake and says one or more of the arguments are wrong. I've double and triple checked all the inputs, and I can't find anything wrong. Additionally, I've been able to connect to the web socket endpoint using a CLI tool websocat, which at least don't reject the connection using those same credentials.

Is there anything else I can do to debug this? CloudTrail doesn't show anything, and the app works fine on managed GameLift. Do I need to allow list my machine, or give the public IP, or open any extra ports when registering the compute instance, or is there anything else I can look at? Is there perhaps a minimal sample project using the GameLift SDK that does nothing but connect to GameLift AnyWhere that can be used to test and eliminate problems with the Unreal Engine setup?

Finally, I'm only using the GameLift Server SDK, none of the additional editor modules or client features, since I don't need them for this setup, and there's no dependencies between them as far as I can tell.

I've tried with OpenSSL 1.1.1v and 3.1.3, pre-built binaries and locally built ones, with the same outcome on both Linux (WSL2/Ubuntu) and Windows 11.

I've just managed to "register" a server via the websocket CLI and create a session that gets sent to the same CLI socket, so there's definitely nothing wrong with the credentials. It's only the plugin that doesn't work.

axl
asked 6 months ago227 views
1 Answer
0
Accepted Answer

Well, embarrassing as it is, it was a one-character spelling error in one out of 20 command line parameters. It would still be cool with more debugging options though. :D

axl
answered 6 months ago
  • Hi axl - I'm currently struggling with exactly the same issue. I am very very sure that all of my command line parameters are spelled correctly. But could you maybe tell me, which of the parameters was faulty for you and how you fixed it?

  • @David In my case the command line parameters were to my own server application, and not directly to the AWS CLI or SDK, that's why I didn't get any errors about invalid options, the option was simply passed using a default value. If you're also passing parameters indirectly, you could try inspecting all parameters passed to the SDK in the debugger, or using logs, to ensure nothing gets lost on the way.

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