Deployment statuses
Every value of `DeploymentStatus`, what it means on Skiffly, what you can do in that state and how the dashboard, CLI and MCP show it.
The enum is the same as Railway's DeploymentStatus; the CLI and MCP print the lowercase form.
| Status | Meaning | Actions |
|---|---|---|
QUEUED | Accepted, waiting for a node to pick it up | cancel |
BUILDING | Image build running, or waiting for one of the two build slots on the node (waiting for a build slot) | watch build logs |
DEPLOYING | Image ready, containers starting, health check not passed yet; the previous deployment still serves traffic | watch runtime and system logs |
SUCCESS | Live. For a cron service: the schedule is registered | redeploy, restart, roll back to it later |
FAILED | Build error, health check not passed within 5 minutes, image pull error, quota exceeded, or node lost for 20 minutes; the previous deployment keeps running | read message and logs, fix, deploy |
CRASHED | The container exited repeatedly after going live (3 restarts in a row); message contains the last log lines | read logs, fix, deploy; roll back |
SLEEPING | Scaled to zero by App Sleeping; the next HTTP request wakes it | send a request, or turn sleeping off |
REMOVED | Replaced by a newer deployment, cancelled, removed by hand, or the service was deleted | roll back (if the image still exists) |
Reserved and never returned today: INITIALIZING, NEEDS_APPROVAL, REMOVING, SKIPPED, WAITING.
Messages#
Deployment.message explains waits and failures with the underlying event:
| Message | Cause |
|---|---|
waiting for a build slot | two builds already running on the node |
exceeded quota … | the environment's CPU/memory quota is full; lower limits or replicas of other services |
ImagePullBackOff … | the image name or tag is wrong, or the registry is private |
OOMKilled | the container used more than its memory limit |
CrashLoopBackOff: … | the process keeps exiting; the last log lines follow |
build timed out / node lost | no status from the node for 20 minutes |
cancelled by <user> | cancelled while queued |
Where to see it#
- Dashboard: service card on the canvas, Deployments tab, project Logs.
- CLI:
skiffly status,skiffly deployment list,skiffly up(streams untilSUCCESSor a failure). - MCP:
get-status,list-deployments,get-logs. - GraphQL:
deployment(id) { status message },deployments(input: { status: { in: [FAILED, CRASHED] } }).