Each time I deploy, my app is placed in a different (seemingly random) region that is not in my region list.
My region list is only ewr, however my single app instance is in a different region. Running flyctl -app [my app] regions set ewr returns a correct region pool, but does not move my app. The only thing that does move my app is scaling my vm up and down. Then it settles in ewr.
FYI, this only happens on one fly app, the rest are working as expected.
@conor That might happen if the desired region is either full or having an outage. I don’t see any issues in ewr right now so something else might be happening. Could you post or DM your app’s name and we can take a look?
@conor just for some context here, we let apps run on backup regions when something goes wrong. We can tweak this for you if you’d rather have a different behavior, by default it picks the two closest regions as backups. Some people run with no backup regions because their workloads don’t make any sense if their preferred regions are unavailable.
In this case, it seems like our scheduling algorithm preferred a backup region over the ewr region you specified. This is something we’re working to improve, it happens when it shouldn’t in some scenarios. We should have better scheduling controls for you in the next couple of months.
@pier that’s a quirk of our “backup region” settings, probably. If you have 3 regions set, we’ll also allow the app to deploy to 3 other nearby regions. So if it does get more instances, it could put them in “backup regions”.
It’s pretty obvious our backup region strategy is surprising in all the wrong ways, so we’re working on some alternatives.
Yeah, this is a feature not a bug, it’s just not documented well enough. Just a confirmation after setting the regions that x,y,z have also been set as backups should be enough.
I think what we’re going to do is expose backup region configuration, use a reasonable default when an app is first created, and then echo the whole config when you make any kind of change.
This looks good… I don’t actually see a reason why backups regions should be disabled at all — the only compliance reason I could think of was data residency, but it seems like in all other cases one would prefer a lower latency to not having a server running at all.