Skip to content

Amazon GameLift Server fleet creation error CREATE_FAILED, HandlerErrorCode: NotStabilized

1

I'm developing multiplayer game in Unity with authoritative server. I'm using GameLift's sample project for testing scenario and procedure. First I use Anywhere fleet to test sample project by following documentation. It worked as expected. Than I use Managed EC2 fleet by following documentation, than it gives me following error on CloudFormation when I upload it with unity editor

This AWS::GameLift::Fleet resource is in a CREATE_FAILED state.

Resource handler returned message: "Resource of type 'AWS::GameLift::Fleet' with identifier 'fleet-6013ad1d-e0f1-4372-a7b0-9701c201badd' did not stabilize." (RequestToken: 106bbc26-5b21-e0b4-7a3b-a17b1ab02e27, HandlerErrorCode: NotStabilized)

I had also created install.sh bash file and place it in root folder.
install.sh

#!/bin/bash
# For Amazon Linux 2023 (Server SDK 5.x)
sudo dnf install -y libicu libX11 libXext libXrender libXrandr libXcursor libXcomposite libXdamage libXi libXtst

# Essential: Ensure the binary can be executed
chmod +x BuildName.x86_64

I had also checked EC2 quota value which is 5

IAM user has following roles

  • AWSServiceRoleForAPIGateway
  • AWSServiceRoleForRDS
  • AWSServiceRoleForResourceExplorer
  • AWSServiceRoleForSupport
  • AWSServiceRoleForTrustedAdvisor

Granted permissions are

  • AdministratorAccess
  • GameLiftContainerFleetPolicy
  • GameLiftGameServerGroupPolicy

I'm using Unity 6.3LTS
Build platform Linux Server (headless build)
Build Architecture Intel 64-bit
SDK version Server SDK 5.x
Region us-east-1
Sample project
Documentation

  • I am having the same issue, and I found another user that opened a ticket on Github too: https://github.com/amazon-gamelift/amazon-gamelift-plugin-unity/issues/283

    Amazon Linux 2023 uses GLIBC version 2.34, while Unity Linux needs GLIBC version 2.35. The provided install.sh script tries to solve the situation by downloading and compiling GLIBC 2.35 and patching Unity libraries, but it fails both for me and for the guy in the Github thread too.

2 Answers
0

Hi, we have released 3.2.1 plugin that has an example install script for Linux builds for Unity 6.3 to address Amazon Linux 2023 GLIBC dependency issue: https://github.com/amazon-gamelift/amazon-gamelift-plugin-unity/blob/main/ExtraServerResources/install.sh

You can merge it to your existing install.sh

AWS
answered 6 days ago
-1

The "NotStabilized" error indicates that your fleet failed to complete the activation process successfully. This typically occurs during fleet validation when Amazon GameLift attempts to launch and verify your game server on the EC2 instances.

Based on the error, here are the most likely causes and troubleshooting steps:

Common causes for fleet activation failure:

  1. Runtime Configuration Issues: The executable path specified in your runtime configuration may not match the actual binary location in your build, or the binary may not have proper execute permissions despite your install.sh script.

  2. Server Process Initialization: Your game server may not be calling the Server SDK initialization methods correctly or within the expected timeframe. The server must call InitSDK() and ProcessReady() within the timeout period.

  3. Missing Dependencies: Even with your install.sh script installing libraries, there may be additional dependencies required for Unity Linux builds that aren't being installed or the installation may be failing.

  4. Build Validation Failure: The game server executable may be crashing on startup or failing to run properly on the Amazon Linux 2023 environment.

Recommended troubleshooting steps:

  1. Check Fleet Events: In the GameLift console, navigate to your fleet and view the event logs. Look for specific error codes like FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND, FLEET_VALIDATION_EXECUTABLE_RUNTIME_FAILURE, SERVER_PROCESS_SDK_INITIALIZATION_TIMEOUT, or SERVER_PROCESS_PROCESS_READY_TIMEOUT. These will provide more specific information about what failed.

  2. Review Server Logs: Access the pre-signed log URLs from the fleet events to examine your server's output and error logs. These logs are available for 15 minutes and will show you exactly what's happening when GameLift tries to start your server.

  3. Verify Runtime Configuration: Ensure your launch path in the runtime configuration exactly matches your binary name and location. For Unity Linux builds, verify the path includes the correct executable name.

  4. Test Install Script: Make sure your install.sh is being executed properly and all dependencies are installing successfully. Consider adding logging to the script to verify execution.

  5. SDK Integration: Double-check that your Unity game server is properly integrated with the GameLift Server SDK and calling ProcessReady() within the expected timeframe after initialization.

The fleet event logs will be your best source of detailed information about why the fleet failed to stabilize.
Sources
Event - Amazon GameLift Servers
Fleets in the Amazon GameLift Servers console - Amazon GameLift Servers

answered 11 days 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.