page:guides:phoenix:deployment diagnostics
Diagnose Deployment Failures for Phoenix
Summary
Deployment diagnostics for a Phoenix app on Ample. Verified on Phoenix: the same app deployed with a deliberate boot failure (CANARY_FAIL=boot): ample deploy exited 1 with a coded failure (health_check_failed when the process dies at boot, public_ingress_failed when the framework boots but every request answers 500) and the app's own error line was readable with ample logs --kind runtime, so the cause is read from the framework's output rather than guessed.
Framework
Phoenix
Workload
Diagnose deployment failures
Release Status
Published
Support Status
Verified
Execution Status
Unbound
Docs Only
True
Prerequisites
- A Phoenix project (mix deps.get, MIX_ENV=prod mix compile and mix release in the builder, then the release bin script with PHX_SERVER=true on the elixir-1.18 template; PORT, DATABASE_URL and SECRET_KEY_BASE read in config/runtime.exs)
- An Ample account token with servers:write
Workflow Steps
- Read the failure code
Deploy is synchronous. Exit 1 with build_failed means the isolated build failed; health_check_failed means the app built but never answered on PORT (it crashed at boot or bound the wrong port); public_ingress_failed means it answered on PORT but the public URL returned an error status (a request handler or bootstrap failed); exit 2 means a required preflight action is blocking. - Read the build log
The last lines name the failing command and its output.
Command:ample logs --kind build - Read the runtime log
For health_check_failed the runtime log carries the Phoenix process output: in the verified run the deliberate boot failure's own error line was there, followed by the platform's health-check verdict and the start command it ran.
Command:ample logs --kind runtime - Fix and redeploy once
Change the source, the environment or the command override, then run ample deploy again. Do not loop deploys to poll status; an unchanged redeploy is a no-op. - Verify
Fetch the live URL on the example; on failure read the build and runtime logs.
Command:ample logs --kind build
Limitations
- Verified on the elixir-1.18 template at s-1vcpu-1gb; other sizes and Phoenix major versions are not verified.
- Region, compliance attestations and request-duration limits are unknown and not claimed.
Cost Estimate
- Currency: USD
- Monthly Amount: 5.0
- Basis: size prices from pricing.toml (loaded by the API) at build revision 1ac5595375130d45290090e82ed0f554ccd45405-dirty
Components
- Name: app server
- Size: s-1vcpu-1gb
- Quantity: 1.0
- Monthly Amount: 5.0
Note: Always-on monthly price of the tested sizes; apps auto-pause when idle. Buckets are allocation-priced per quota and not included.
Next Actions
- Browse the catalog index
- Search published recipes by intent, stack and constraints
- Prepare a side-effect-free deployment plan for an authorized project
- Read the existing agent authentication setup
- Browse Phoenix
- Browse Troubleshoot deployment
- Browse Public web service