{"record":{"id":"bc0a905822a3f531","repo":"jdx/mise","slug":"engine-podman-requested-but-podman-was-not-fou","errorCode":null,"errorMessage":"--engine podman requested but `podman` was not found on PATH","messagePattern":"--engine podman requested but `podman` was not found on PATH","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cli/oci/run.rs","lineNumber":228,"sourceCode":"        let status = run_result?;\n        if let Some(code) = status.code() {\n            if code != 0 {\n                return Err(crate::request_exit(code));\n            }\n        } else if !status.success() {\n            bail!(\"{engine_bin} exited abnormally: {status:?}\");\n        }\n        Ok(())\n    }\n}\n\nfn select_engine(requested: Engine) -> Result<Engine> {\n    match requested {\n        Engine::Podman => {\n            if file::which(\"podman\").is_some() {\n                Ok(Engine::Podman)\n            } else {\n                bail!(\"--engine podman requested but `podman` was not found on PATH\")\n            }\n        }\n        Engine::Docker => {\n            if file::which(\"docker\").is_none() {\n                bail!(\"--engine docker requested but `docker` was not found on PATH\");\n            }\n            Ok(Engine::Docker)\n        }\n        Engine::Auto => {\n            if file::which(\"podman\").is_some() {\n                Ok(Engine::Podman)\n            } else if file::which(\"docker\").is_some() {\n                Ok(Engine::Docker)\n            } else {\n                bail!(\"no supported container engine found. Install podman or docker.\")\n            }\n        }\n    }","sourceCodeStart":210,"sourceCodeEnd":246,"githubUrl":"https://github.com/jdx/mise/blob/9dcfcaa0dc8747a2577d3270b69bb9d8313b2807/src/cli/oci/run.rs#L210-L246","documentation":"`--engine podman` explicitly demands podman. `select_engine` checks `file::which(\"podman\")` and bails immediately rather than silently falling back to docker, because the user named the engine explicitly. Auto mode (no --engine) is the one that falls back.","triggerScenarios":"`mise oci run --engine podman ...` on a machine without podman installed, or with podman installed but not on the PATH mise sees (flatpak-installed podman, ~/.local/bin not in PATH, PATH rewritten by mise env or a container).","commonSituations":"CI images that ship docker only; macOS/Linux hosts where podman was installed via an unusual prefix; scripts pinned to --engine podman running on developer machines that only have Docker Desktop.","solutions":["Install podman (`brew install podman`, `apt install podman`, ...)","Omit `--engine` so Auto mode falls back to docker if that is what's available","Verify mise can see it: `command -v podman` in the same shell/env mise runs in"],"exampleFix":"# before\nmise oci run --engine podman ghcr.io/you/devenv:tag -- bash\n# after\nmise oci run ghcr.io/you/devenv:tag -- bash   # auto-selects available engine","handlingStrategy":"validation","validationCode":"# bash: require podman only when explicitly demanded\nif [ \"$ENGINE\" = \"podman\" ] && ! command -v podman >/dev/null 2>&1; then\n  echo \"podman required but not on PATH\" >&2; exit 2\nfi\nmise oci run ${ENGINE:+--engine \"$ENGINE\"} -- bash","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Omit --engine unless you truly need engine-specific behavior; Auto mode degrades gracefully","In Dockerfile/CI images, verify with `command -v podman` in a smoke-test step"],"tags":["oci","run","podman","path","container-engine"],"backgroundTag":"executable-not-found","analyzedSha":"9dcfcaa0dc8747a2577d3270b69bb9d8313b2807","analyzedAt":"2026-08-17T14:28:50.624Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}