region is ignored everywhere. --region, primary_region, FLY_REGION all do nothing

i’m losing my mind over fly regions and machines.

setup:

  • app already exists

  • fly.toml has primary_region = "sin"

  • volume is in sin

  • personal org, free/legacy plan

problem:
no matter what i do, fly keeps trying to create machines in bom and fails with:

region ‘bom’ cannot host your machine because your organization is on a legacy or non-paid plan

things i tried (all ignored):

  • fly machine run . --region sin

  • FLY_REGION=sin fly machine run .

  • confirming primary_region = "sin" in fly.toml

  • volume is already in sin

  • destroying old machines first

fly still tries bom every single time.

even worse:

  • no clear error saying why bom is chosen

  • flags don’t error, they’re just silently ignored

  • docs say --region works, but in practice it doesn’t here

Hi… This sounds like it’s probably the builder, which is created closest to where you personally are—regardless of the app’s primary region, etc.

There’s an environment variable that can be set to override that separate default:

https://community.fly.io/t/region-cannot-host-your-machine-fra/23071/31

(Maybe also try --build-depot=false.)

Alternatively, you can build first, push the image, and then pass the resulting registry.fly.io/<long-string> ID to fly machine run in place of the . positional argument.