The codes you'll actually meet
| Code | Meaning | Likely cause |
|---|---|---|
| 0 | Clean exit | Process finished — but maybe it shouldn't have. Long-running services should never exit 0 on their own. |
| 1 | Application error | Your code threw, your config is bad, your DB is unreachable. Read logs. |
| 125 | Docker daemon error | Bad flag, can't bind port, missing image. |
| 126 | Permission denied | CMD isn't executable, or USER lacks permission. |
| 127 | Command not found | CMD path is wrong; binary isn't in PATH inside the image. |
| 137 | SIGKILL (128+9) | OOM-killer killed it. Hit your --memory limit. |
| 139 | SIGSEGV (128+11) | Native crash. Often musl/glibc mismatch on alpine. |
| 143 | SIGTERM (128+15) | You stopped it normally — or k8s did during a rollout. |