Realtime script not updating

HI guys,

I am logged in to fleet via SSH. On my local windows machine, I made change to script then via AWS CLI. I do update script to S3 and do aws gamelift update-script(not sure if update-script command is needed to trigger fleet to update it script). Anyways I dont see changes on fleet. in /local/game I dont see new folders being created. But I see changes in /local/downloads/. I copied that zip over to my local windows machine and that is indeed new script from S3.

Why does fleet isn’t updated to new script?

That workflow worked week ago…Every time I do aws gamellift update-script I see new folder is created in /local/game and I see change in realtime server behaviour. New fleets that are created from same S3 storage script is going from ACTIVATING straight to ERROR with no usefull informations.

If I run manually script with node app.js it works, so script has no error.

FleetId: fleet-150f2b47-a52c-4e3f-9661-45fc887fddd7

Mislav

One thing to bear in mind is that GameLift may not update the scripts on processes running existing game sessions, only new game sessions will reference the new script as per: https://docs.aws.amazon.com/gamelift/latest/developerguide/realtime-script-uploading.html#realtime-script-uploading-update

I will ask someone from the GameLift service team to look at your fleet to see if they can provide specifics.

It is concerning that new fleets using your updated script fail, which might indicate you have some problems wrt to initialization in your updated script.

Got it…I know that new game sessions reference updated script…I think this is not the case.

Yesterday I tried again and fleets are creating with that script, but not updating, so script is OK. When I update script, I change some simple stuff for example from console.log("Hello world ") to cosnole.log(“Hello world 2”)

Thanks,

Mislav

Hi there,

I found your fleet in eu-central-1 with a large amounts of MD5 checksum failures when it tried to download the updated script from your s3 bucket. Can you double check whether the download folder has your updated script?

We also tried to create a fleet on our end and updated the script. But we were not able to reproduce this problem. Can you double check whether you have anything that could update the S3 file at the same time the fleet downloads the script? That’s one thing I know that can trigger these MD5 checksum failures.

I found it was node_modules issue. When i do npm install --only=prod it works, updating realtime script and creating fleet from script…here is package.json:

  "devDependencies": {
    "bestzip": "^2.1.5",
    "typescript": "^2.9.2",
    "typings": "^2.1.1"
  },
  "dependencies": {
    "@types/request-promise": "^4.1.44",
    "request": "^2.88.0",
    "request-promise": "^4.2.5"
  }

Mislav

Hi @Pip, @NingAWS
realtime script update is still not working for us, we tried with another fleet. Up until now we were uploading our build scripts manually by uploading the zip, since we passed 5MB limit on the build files we switched to using S3 bucket. I think the first update using S3 to the fleet worked just fine. After that no upload using S3 was successful, we created another fleet but it switched from ACTIVATING state to ERROR.

Fleet with error: fleet-bc75f2ee-dd00-4147-910c-6eeeb0aa7a96

UPDATE:
We have realized that the fleet won’t get updated if the size of the zip file from S3 bucket is larger than 2.9MB. We realized that our build that includes other dependencies is about 10MB and build with that size doesn’t get unzipped in the /game/local and server never starts.

Thanks for the update. I’ve left the GameLift service team know of your findings.