Abysmal experience evaluating the deployment of Phoenix app to Fly.io

I’ve had the worst experience I can imagine trying to deploy a Phoenix app to Fly.io using a “hobby” account. I hope my experience isn’t typical.

Yesterday, I was able to launch an app, but I couldn’t redeploy after making changes. When I tried, I got this:

Running i-know-test release_command: /app/bin/migrate
  release_command 9185491f10d983 completed successfully
Updating existing machines in 'i-know-test' with rolling strategy
  [1/2] Updating 9080117ae36387 [app]
Error: failed to update VM 9080117ae36387: You have reached the maximum number of machines for this app.

To unlock more features please add credit to your org (using an admin account) from your billing page:

 https://fly.io/dashboard/cirvine/billing

Or contact us at billing@fly.io and we'll take a closer look at your account.

After posting to the Elixir forum, reading the docs, and other misc frustrations, I wildly speculated that my account might be corrupted and decided to delete it, create a new account and then try again. Big mistake I guess.

Now I am not even able to launch a new app. I get to the deployment phase of the launch and get message saying that I need to authenticate, even though that was the first thing that I did. See below.

% fly launch
Creating app in /Users/charlesirvine/src/my_app
Scanning source code
Resolving Hex dependencies...
Resolution completed in 0.171s
Unchanged:
  castore 1.0.2
  cowboy 2.10.0
  cowboy_telemetry 0.4.0
  cowlib 2.12.1
  db_connection 2.5.0
  decimal 2.1.1
  ecto 3.10.1
  ecto_sql 3.10.1
  esbuild 0.7.0
  expo 0.4.1
  file_system 0.2.10
  finch 0.16.0
  floki 0.34.2
  gettext 0.22.1
  hpax 0.1.2
  jason 1.4.0
  mime 2.0.3
  mint 1.5.1
  nimble_options 1.0.2
  nimble_pool 1.0.0
  phoenix 1.7.2
  phoenix_ecto 4.4.1
  phoenix_html 3.3.1
  phoenix_live_dashboard 0.7.2
  phoenix_live_reload 1.4.1
  phoenix_live_view 0.18.18
  phoenix_pubsub 2.1.1
  phoenix_template 1.0.1
  plug 1.14.2
  plug_cowboy 2.6.1
  plug_crypto 1.2.5
  postgrex 0.17.1
  ranch 1.8.0
  swoosh 1.10.2
  tailwind 0.2.0
  telemetry 1.2.1
  telemetry_metrics 0.6.1
  telemetry_poller 1.0.0
  websock 0.5.1
  websock_adapter 0.5.1
All dependencies are up to date
[info] Configuration :server was not enabled for MyAppWeb.Endpoint, http/https services won't start
Detected a Phoenix app
? Choose an app name (leave blank to generate one): 
automatically selected personal organization: crirvine
Some regions require a paid plan (fra, maa).
See https://fly.io/plans to set up a plan.

? Choose a region for deployment: Dallas, Texas (US) (dfw)
App will use 'dfw' region as primary

Created app 'bold-night-7881' in organization 'personal'
Admin URL: https://fly.io/apps/bold-night-7881
Hostname: bold-night-7881.fly.dev
Set secrets on bold-night-7881: SECRET_KEY_BASE
? Would you like to set up a Postgresql database now? Yes
? Select configuration: Development - Single node, 1x shared CPU, 256MB RAM, 1GB disk
? Scale single node pg to zero after one hour? Yes
Creating postgres cluster in organization personal
Creating app...
Setting secrets on app bold-night-7881-db...
Provisioning 1 of 1 machines with image flyio/postgres-flex:15.3@sha256:814448113018b101e900c1fb875a75f98178f0978ac0715a7638bfb8a11bb59d
Waiting for machine to start...
Machine 6e82dd02a41298 is created
==> Monitoring health checks
  Waiting for 6e82dd02a41298 to become healthy (started, 3/3)

Postgres cluster bold-night-7881-db created
  Username:    postgres
  Password:    ft6xIKT4NFZ4Yq8
  Hostname:    bold-night-7881-db.internal
  Flycast:     fdaa:2:2f8a:0:1::5
  Proxy port:  5432
  Postgres port:  5433
  Connection string: postgres://postgres:ft6xIKT4NFZ4Yq8@bold-night-7881-db.flycast:5432

Save your credentials in a secure place -- you won't be able to see them again!

Connect to postgres
Any app within the crirvine organization can connect to this Postgres using the above connection string

Now that you've set up Postgres, here's what you need to understand: https://fly.io/docs/postgres/getting-started/what-you-should-know/
Failed attaching bold-night-7881 to the Postgres cluster bold-night-7881-db: can't build tunnel for personal: You must be authenticated to view this..
Try attaching manually with 'fly postgres attach --app bold-night-7881 bold-night-7881-db'
Error creating Postgresql database. Be warned that this may affect deploys
? Would you like to set up an Upstash Redis database now? No
Preparing system for Elixir builds
Installing application dependencies
Running Docker release generator
Wrote config file fly.toml
? Would you like to deploy now? Yes
Validating /Users/charlesirvine/src/my_app/fly.toml
Platform: machines
✓ Configuration is valid
==> Building image
WARN Failed to start remote builder heartbeat: failed building options: You must be authenticated to view this.
Error: failed to fetch an image or build from source: error connecting to docker: failed building options: You must be authenticated to view this.

Hi Cirvine. Is ther any clues in the output of fly doctor and fly auth whoami ?

Thanks for the response.

fly auth whoami:

% fly auth whoami  
cr.irvine.kc@gmail.com

fly doctor:

% fly doctor     
Testing authentication token... PASSED
Testing flyctl agent... PASSED
Testing local Docker instance... PASSED
Pinging WireGuard gateway (give us a sec)... FAILED
(Error: ping gateway: pinger: You must be authenticated to view this.)

We can't establish connectivity with WireGuard for your personal organization.

WireGuard runs on 51820/udp, which your local network may block.

If this is the first time you've ever used 'flyctl' on this machine, you
can try running 'flyctl doctor' again.

If this was working before, you can ask 'flyctl' to create a new peer for
you by running 'flyctl wireguard reset'.

If your network might be blocking UDP, you can run 'flyctl wireguard websockets enable',
followed by 'flyctl agent restart', and we'll run WireGuard over HTTPS.

Would you recommend any of the actions suggested by doctor? Keep in mind that I could do a launch yesterday. I just couldn’t do a deploy.

Hey, this looks like you got hit by our abuse / risk checks, sorry about that. If you send us an email at billing@fly.io we should be able to get this fixed for you.

1 Like

I suppose that makes sense. I did, as I admitted, delete my account and then re-created it. Having a background in risk assessment, this would constitute suspicious behavior. I’ll send the email. Thanks

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.