Skip to content

Resolve 'any' and retired regions in launch manifests - #5348

Merged
dangra merged 3 commits into
masterfrom
fix-launch-framework-failures
Nov 7, 2026
Merged

dangra merged 3 commits into
masterfrom
fix-launch-framework-failures

Conversation

@alexleventer

@alexleventer alexleventer commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

fly launch can fail with region any not found, region bom not found or Region qro is deprecated.

Loading a launch manifest (--from-manifest, and fly launch plan generate --region X) skips determineRegion, so "any", an empty region or a retired code reached the plan unchanged. This PR:

  • resolves "any" or an empty region in a manifest to the nearest region from /platform/regions;
  • maps a retired region to its replacement, or else to the closest region still open to new apps, and fails early with a pointer to fly platform regions for unknown codes.

Complements #5333, which covers the determineRegion/fly.toml path. The only conflict with #5333/#5335 is tests appended to plan_builder_test.go.

`fly launch --from-manifest` and `fly launch plan generate --region` put
the manifest's region straight into the plan, skipping determineRegion.
"any" is what placements takes for "the best region", and what the
launcher and agents pass when they don't care, but the plan summary looked
it up as a region code and failed:

  region any not found. Is this a valid region according to `fly platform
  regions`?

A manifest region of "any" or "" now becomes the nearest region from
/platform/regions, as determineRegion does for a fresh launch.
The GitHub launcher passes a region to `fly launch plan generate`, which
skips determineRegion and its deprecatedRegionReplacements, so a retired
region like qro or bom reached the plan as is: the summary failed with
"region bom not found", or the Machines API refused it ("Region qro is
deprecated and cannot have new resources provisioned").

A manifest's retired region now becomes its listed replacement, and a
deprecated region missing from that list (bom today) becomes the closest
region still open to new apps. A region that isn't on the list at all
fails up front, saying to pick one from `fly platform regions`.
@alexleventer
alexleventer requested a review from a team as a code owner November 1, 2026 04:54
@dangra
dangra merged commit 2b90eb5 into master Nov 7, 2026
38 of 41 checks passed
@dangra
dangra deleted the fix-launch-framework-failures branch November 7, 2026 11:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants