jdx/mise · error
exited abnormally
Error message
{engine_bin} exited abnormally: {status:?} What it means
After `mise oci run` launches the container engine, mise checks the exit status. If the engine process terminated without an exit code (killed by a signal, e.g. SIGKILL/SIGSEGV) and was unsuccessful, mise reports the raw ExitStatus instead of an exit code to propagate. Normal non-zero exit codes are forwarded as-is via request_exit, so this error indicates an abnormal termination.
Solutions
- Rerun the command; transient kills (OOM) may not recur
- Check `dmesg`/journalctl for OOM or signal kills of docker/podman
- Increase memory limits or reduce container workload
- Verify the engine daemon is healthy (`docker info` / `podman info`)
Defensive patterns
Strategy: retry
Try / catch
mise oci run ... || { rc=$?; if [ $rc -gt 128 ]; then echo "engine killed by signal $((rc-128))"; fi; } Prevention
- Monitor dmesg/journalctl for OOM kills of docker/podman
- Ensure the engine daemon is running and healthy before batch runs
- Set adequate memory limits for containers launched from OCI images
When it happens
Trigger: The selected engine binary (docker/podman) is killed by a signal during `mise oci run` — status.code() is None while success() is false.
Common situations: OOM killer terminating a docker daemon mid-run, podman receiving SIGTERM/SIGKILL from the shell or cgroup limits, or a crashed engine binary.
Related errors
- get failed for
- `auth` for is not `user:password
- `docker load` failed
- `docker load` failed
- : does not look like an OCI image layout (missing…
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/ed752946a3bf59af.
Report an issue: GitHub.
Appendix: source
Thrown at src/cli/oci/run.rs:220
Ok(out) if out.status.success() => {}
Ok(out) => {
// Don't fail the overall command — just note it; a
// failing rmi usually means the image is still in use
// (e.g. another concurrent run) or was already deleted.
let stderr = String::from_utf8_lossy(&out.stderr);
debug!("{engine_bin} rmi {image_ref} failed: {stderr}");
}
Err(e) => debug!("failed to spawn {engine_bin} rmi: {e}"),
}
}
let status = run_result?;
if let Some(code) = status.code() {
if code != 0 {
return Err(crate::request_exit(code));
}
} else if !status.success() {
bail!("{engine_bin} exited abnormally: {status:?}");
}
Ok(())
}
}
fn select_engine(requested: Engine) -> Result<Engine> {
match requested {
Engine::Podman => {
if file::which("podman").is_some() {
Ok(Engine::Podman)
} else {
bail!("--engine podman requested but `podman` was not found on PATH")
}
}
Engine::Docker => {
if file::which("docker").is_none() {
bail!("--engine docker requested but `docker` was not found on PATH");
}View on GitHub (pinned to 533346cc37)