Why this happens
The circuit breaker fires when the new tasks keep stopping before the service can stabilise. Common causes:- The application crashes at boot. A bad configuration value or an unhandled startup error stops the container within seconds.
- A secret or environment value the new version expects is missing, so initialisation fails.
- The schema-version boot gate refuses to start because the database schema does not match what the new code expects.
- The image itself is broken. The entrypoint fails or a dependency is missing from the build.
ecs_stabilise phase. The provider reason from ECS may include the stopCode for the failed tasks.
How to fix it
- Check the application logs for the stopped tasks. The new version could not start, and the boot output names the reason in almost every case.
- Reproduce the boot locally. Run the same image with the same environment and watch it start. A crash that happens in ECS usually happens on your machine too.
- If the logs mention a missing secret or environment value, add it and redeploy. Compare the new version’s expected configuration against what the service actually receives.
- If the schema gate refused to boot, run the pending migration first, then deploy the code that depends on it.
- Deploy again once the boot failure is fixed. The previously running version was left in place, so there is nothing to roll back manually.
The rollback is automatic. Your service never switched to the broken version, so no traffic was served by it.
What Fjall shows you
The deployment’s detail page on fjall.io shows this code, the affected service, the verbatim ECS reason, and the deploy-time ECS event tail. The CLI prints the same information in its Error Detail block, and the deployments list shows the failure title on the deployment’s row.Related
Deployment safety
How the circuit breaker and the ECS event tail protect your rollouts.
Deploy an application
The full deployment flow, phase by phase.
fjall deploy
Deploy from the CLI and read its failure output.
fjall releases
Check what is currently running after a rollback.