"Migrate to Latest Update" shuts down ALL servers

Description of Bug

Expected behavior: According to the Roblox release of this feature and the website prompt below, it’s implied that the Migrate button should only shut down old servers over 1-6 minutes and start up new, updated servers.

image

Actual Behavior: The Migrate button shuts down brand new, up-to-date servers. The shutdowns also appear to be all instant, not over 6 minutes. From what I can tell, the Migrate button does exactly the same thing as “Shut Down All Servers” button.

I’ve talked with many other devs and no one seems to know exactly how this feature is supposed to work. They agree that it appears do the same thing as just shutting down all servers. There is no clear description of how it’s really supposed to work.

The bug happens in multiple places I tested.

I’ve always noticed this feature to be weird, but I never fully tested it until now.

Repro of Bug

In the video, I have a game which has the latest version published. There are no players/servers active at the start of the video. No one is editing the game at the time of the video. I could not record two windows at once, so you only see the game page in the video. I did not leave the server, I got kicked. I also included a screenshot of me getting kicked from the game.

What happens: I play the game. A new server starts up and I am put in the server. I then click the Migrate button. My brand new, up-to-date server is shut down.

In the game window I see this:

9 Likes

PS - Perhaps maybe the Migrate feature is supposed to shut down all servers and update them with the SAVED version of the game? This makes no sense however, because (as seen in the video) even if a server is the current “saved” version of the game, it still gets shut down. If that’s the case, this feature is incredibly pointless. I don’t think any big games actually use the Save feature, we all make edits/testing on a separate game, and then publish to the main game.

5 Likes

Can anyone share a bit of what’s your imagined perfect experience when you push an update of your game? This is related to a potential game release management service we want to work on in the future.

6 Likes

Sure, ideally when clicking “Migrate to Latest Update” it would cause the players to be teleported to an updated server instance, updated here is based on the latest published version. This updated server instance could either be an existing server that is up to date or a new server instance altogether.

If the above is not possible, the button should instead be renamed to “Shutdown Old Servers” and do as it says, shut down old servers based on the latest published version unlike the current behavior which appears to be based on the current saved version like mrfergie pointed out.

PS: This is my opinion and I do not speak for a large population of people, but the first option is my “imagined perfect experience”, and the second is the bare minimum I, and I am sure others, can live with.

8 Likes

As @Antradz had said, a sort of “Soft Shutdown” system would be great. I’m currently using one in my game where it will detect the game closure, and teleport the users to an updated server. It would be great if we could have a button that would soft shutdown a game, but display a notice letting the users know that they are being teleported. (Maybe have the notice toggleable so that the game developer is able to add their own). Definitely give us some time to save all the user data prior to the server being moved.

Probably as well, stated by Antradz, a system that would get the latest game version, and have an option to shut down the old servers. However, I do think this would be less useful then the soft shutdown as it would be nice to have a more user friendly approach then a simple “kicked from game” message.

Soft shutdown:

  • Allows you to keep the playerbase that you currently had in game, just teleported to a new server, (no guarantees)
  • Makes it 10 times easier for developers, as a few clicks of a button would definitely help a lot.

Hard shutdown:

  • Potentially lose players as they wouldn’t have the motivation to rejoin,
6 Likes

Players simply should be “teleported” to new server instances without much interruption to gameplay. The current implementation with an error that requires re-joining isn’t very seamless. Servers that are already the current published version don’t need to be shutdown/reset since they are already up to date.

Currently there isn’t much benefit to using the Migrate option compared to simply shutting down.

See: Merely’s Soft Shutdown Script

1 Like

Others here have mentioned a “soft shutdown” that would work well for games like roleplay games and other games like those but nobody has really thought about round-based games, I’d prefer if it completely prevented players from joining old servers via the play button on the website (the only way to join an old server would then be by joining a friend in that server), which would allow players to continue playing the game without interruption. (I do believe someone previously made a feature request similar to this as well)

Adding on top of this, such a system could also then allow for a way to notify the server that it is outdated, allowing the developer to implement functionality that could perform a soft shutdown immediately after the round finishes, which would not interrupt their gameplay at all.

2 Likes

What others have said are good suggestions. I do have a use-case to add.

First of all, the Migrate feature (or some new feature) should only shut down old servers, not new ones. When I encountered this issue a few days ago, I published a minor bug-fix update to my game overnight at about 1:00 am, when player count was low. I only had about 1/5 of my daily peak players on at the time. The next day, I wanted to shut down any old servers that didn’t get cycled out overnight, without disrupting players in updated servers. This should have shut down up to 1/5 of my servers, but it shut down all of them. I usually let old servers cycle out overnight for minor update, so I don’t have to shutdown all servers. Having a feature to shutdown the few remaining old servers would be great.

Also, as others suggested, it would be great if players automatically got put in a new, updated server whenever the old server got shutdown. Or at the least, improve the kick message to say something like “The game has been shut down for an update, please rejoin” and even having a rejoin button on the kick GUI would be great. This would certainly help to not disrupt player counts.

Side note: In the meantime, can we get a better explanation of how “Migrate To Latest Update” actually works?

1 Like

Hi @Antradz @VoidException @br_cks @mrfergie @Reapimus ,

Thanks for the feedback. It looks like the major needs are:

  1. Allowing players to stay in the game while updating a new version is ideal.
  2. Give you control to when teleport players to new server.
  3. Give you visibility of # of servers in each version. Allow to shutdown servers with old versions.

Is above a fair understanding? Anything missing?

9 Likes

Hi, I made a large thread that involved this the other day : Add a method to guarantee players will be teleported into new/updated servers

1 Like

Looks good.

Not sure if this is already implemented, but having an option to put new players into only new servers would be great also. This would allow old servers to naturally cycle out more quickly. So if I push an update, any NEW player who joins the game will be put into UPDATED servers (unless they follow a friend into an old server). The old servers would die as soon as all players in them leave.

Maybe even once the old servers die down to about 1/3 capacity, auto shut it down and teleport to a new server? Just a thought.

About half of our updates are not major enough to call for a full shutdown. Something minor like this will make these updates smoother, yet ensure they’re delivered quickly.

1 Like

Yea that looks about right, I just have some clarifying questions, to make sure I understand your points.

  1. Will players that are already in a server that has the latest published version remain untouched while old servers are “phased out”?
    • If what @mrfergie stated about the option to block new player joins is viable could developers see this as a possible option as well?
  2. Would this be an event, something like PendingUpdate or PendingShutdown, that developers could connect to and allow us to choose what to do? If this is the case do we have a way to send those players directly to an updated server whether that’s a brand new one or an existing instance?
  3. This would be great, is this something that would appear on the game page under the servers tab? Would it be a version number or an indicator letting game owners know it’s an older build?

Hello,

Adding onto need #2, I believe this comes out of a greater desire to assign some specific action chain when a server is closing, as well as ideally being able to define actions depending on what type of shutdown is occuring.

I.e if we recieve a “Update to latest version” shutdown event like BindToClose, we could yield the actual closing of the server in favor of some custom actions before then (displaying UI on all users screen informing of the shutdown, cleaning up the data model as much as possible to ensure smooth shutdown, etc)

Noble_Draconian nailed this concept very well in his thread; being able to yield an update-based close at will, like until a round ends, while also preparing users with some UI notification while the round is still ongoing, shows the use case in a much stronger light.

Thanks for your time!

2 Likes

It would make sense to have it so when a player joins a game, they should automatically join the latest version of the game. If the player is trying to join a game of a player who is in an older server, the new player would receive a message stating “the player you are trying to join is in an older version of the game, join anyway?” Maybe even giving all players in older servers a prompt stating there are new updates with the option to join or stay (with disclaimer of possible game progress loss).

1 Like