Release outcomes
When a release does not go live, its reason code says why and what to do.
Every push becomes a release. Its outcome is reported on the commit as the sylphx/deploy check, in sylphx deployments and in the console. When a release does not go live, the reason code below says why and what to do.
Rejected: a destructive migration runs before the new code
destructive_expand_migration
A migration in this release drops, renames or narrows something (for example DROP TABLE) and would run before the new code serves. The code that is still serving would break.
What to do: Put the destructive statement in its own migration file whose first line is -- sylphx:contract. Contract migrations run after traffic has moved to the new code and the previous version has drained. Keep additive changes (new tables, nullable columns) in ordinary migrations.
Failed: the migration did not finish in time
migration_failed:deadline
The release step ran longer than its timeout, so the release failed. The previous version kept serving.
What to do: Batch long backfills (update in chunks), or raise [database.migrations] timeout in sylphx.toml.
Failed: the database migration failed
migration_failed
The release step (your migration) exited with an error. The error text is in the check run and in sylphx deployments. The previous version kept serving.
What to do: Fix the migration and push. If the cause was outside your code, sylphx deployments redeploy retries the same commit.
Failed: the migration could not be planned
migration_unplannable
The environment declares migrations but has no database credential to run them with.
What to do: Bind a database to the environment, or remove [database.migrations] if the service has no database.
Waiting for the environment's database
migration_waiting
The environment's database is still being created: the one declared in [resources.database], or a preview's branch database. The release continues once it serves, normally within a few minutes.
What to do: Nothing to do.
Failed: the environment's database was not created in time
database_unprovisioned
The database declared in [resources.database] did not start serving within 20 minutes. The text after the colon is the database's own state.
What to do: Redeploy once the cause is fixed, or file a platform request quoting that state.
Failed: the migration stopped before its last file
migration_incomplete
The migration job succeeded, but the database ledger is behind the newest migration file.
What to do: Look for an out-of-order migration version (a file numbered below one already applied) and push a fix.
Live, but the contract migration failed
contract_failed
The new code is serving. The -- sylphx:contract migration that runs after traffic moved failed, so the schema is still in its expanded form, which is safe.
What to do: Fix the contract migration and push.
Failed: the release step has nothing to run on
release_step_unrunnable
[database.migrations] image or [deploy] release_service names a service that is not built for this commit.
What to do: Point it at a service declared in [[services]].
Failed: the new version never became ready
revision_failed
The new revision started but never passed its readiness check. Traffic never moved; the previous version kept serving.
What to do: Check the service's logs (sylphx logs) and its health path.
Failed: the rollout did not finish in time
rollout_deadline_exceeded
The new revision did not become ready and take traffic within the rollout deadline. The previous version kept serving.
What to do: Check the service's logs and readiness, and its resource requests.
Failed: the service configuration could not be rendered
render_failed
A declared environment variable could not be resolved, for example a from_secret binding whose secret does not exist.
What to do: Add the missing secret (sylphx env set) or fix sylphx.toml.
Rejected: a required check did not pass
check_failed
A check your branch rules require failed or was cancelled on this commit.
What to do: Fix it and push, or re-run the check and then run sylphx deployments redeploy.
Waiting for required checks
admission
The release waits until the checks your branch rules require have passed on this commit.
What to do: Nothing to do; it continues when they pass.
Failed: the environment is not provisioned
environment_not_provisioned
The environment has no namespace yet, so nothing can be deployed into it.
What to do: Environments are provisioned automatically. If this persists, contact support with the environment id.
Withdrawn: the environment was removed
environment_retired
The environment was removed (for example its pull request closed) while this release was in flight.
What to do: Nothing to do.
Superseded by a newer release
superseded
A newer commit was released to this environment first.
What to do: Nothing to do.
Rolled back: the new version regressed
canary_regressed
During a progressive rollout the new version's error rate or latency exceeded its bounds, so traffic moved back to the previous version.
What to do: Check the new version's logs and metrics, fix, and push.
Was this page helpful?
Tell us what is missing, wrong, or unclear — this opens a real inbox.