Unable to deploy Elixir Phoenix app: "Failed due to unhealthy allocations"

I decided to start from scratch with a new app generated using the instructions in Deploy an Elixir Phoenix Application.

The first time I ran mix phx.new ssauction_live_fly and then fly launch I saw:

...
We recommend upgrading to Phoenix 1.6.3 which includes a release configuration for Docker-based deployment.
...

I did that and fly launch failed. I neglected to record why.

So I rm -rfed the whole directory and started again, but upgraded to Phoenix 1.6.6 after running mix phx.new ssauction_live_fly but before running fly launch. This time I got:

	 20:17:39.853 [error] Postgrex.Protocol (#PID<0.136.0>) failed to connect: ** (DBConnection.ConnectionError) tcp connect (ssauction-db.internal:5432): non-existing domain - :nxdomain

I found Failed to connect to database cluster (non-existing domain) - #2 by kurt and made the changes recommended and ran fly launch again. I got:

--> Building image done
==> Pushing image to fly
The push refers to repository [registry.fly.io/ssauction]
29f06f2baaee: Pushed
4c686833369d: Layer already exists
f75686d47dae: Layer already exists
d3cce7faa027: Layer already exists
6129aa9d37ee: Layer already exists
ba5a5fe43301: Layer already exists
deployment-1644093446: digest: sha256:abc7146f666cbb07e18d4e9824579a75740f17e9de140f974eea89b227a84fd0 size: 1575
--> Pushing image done
Image: registry.fly.io/ssauction:deployment-1644093446
Image size: 117 MB
==> Creating release
Release v2 created
Release command detected: this new release will not be available until the command succeeds.

You can detach the terminal anytime without stopping the deployment
==> Release command
Command: /app/bin/migrate
	 Starting instance
	 Configuring virtual machine
	 Pulling container image
	 Unpacking image
	 Preparing kernel init
	 Starting virtual machine
	 Starting init (commit: 0c50bff)...
	 2022/02/05 20:38:02 listening on [fdaa:0:46ae:a7b:2295:baae:94ff:2]:22 (DNS: [fdaa::3]:53)
	 20:38:04.497 [info] Migrations already up
	 Main child exited normally with code: 0
	 Reaped child process with pid: 559 and signal: SIGUSR1, core dumped? false
	 Reaped child process with pid: 561 and signal: SIGUSR1, core dumped? false
	 Starting clean up.
Monitoring Deployment

1 desired, 1 placed, 0 healthy, 1 unhealthy [health checks: 1 total, 1 critical]
v0 failed - Failed due to unhealthy allocations - no stable job version to auto revert to
Failed Instances

==> Failure #1

Instance
  ID            = 1ba57533
  Process       =
  Version       = 0
  Region        = sjc
  Desired       = run
  Status        = running
  Health Checks = 1 total, 1 critical
  Restarts      = 0
  Created       = 4m57s ago

Recent Events
TIMESTAMP            TYPE       MESSAGE
2022-02-05T20:38:15Z Received   Task received by client
2022-02-05T20:38:15Z Task Setup Building Task Directory
2022-02-05T20:38:18Z Started    Task started by client

Recent Logs
2022-02-05T20:38:19.000 [info] Reaped child process with pid: 546, exit code: 0
2022-02-05T20:38:21.000 [info] Reaped child process with pid: 567 and signal: SIGUSR1, core dumped? false
2022-02-05T20:38:49.000 [error] Health check status changed 'passing' => 'critical'
***v0 failed - Failed due to unhealthy allocations - no stable job version to auto revert to and deploying as v1

Troubleshooting guide at https://fly.io/docs/getting-started/troubleshooting/
Error abort

So even on a newly generated Phoenix app I’m still getting “Failed due to unhealthy allocations”. I don’t know what to do at this point (except throw up my hands and give up).