{"record":{"id":"645df826b3efa9ce","repo":"quarkusio/quarkus","slug":"failed-to-check-status-of-builder-image-effecti","errorCode":null,"errorMessage":"Failed to check status of builder image '${effectiveBuilderImage}'","messagePattern":"Failed to check status of builder image '(.+?)'","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/NativeImageBuildContainerRunner.java","lineNumber":81,"sourceCode":"                                holder.exitCode = ec;\n                                return true;\n                            })\n                            .run();\n                    if (holder.exitCode != 0) {\n                        if (builderImagePull == NativeConfig.ImagePullStrategy.NEVER) {\n                            throw new RuntimeException(\n                                    \"Could not find builder image '\" + effectiveBuilderImage\n                                            + \"' locally and 'quarkus.native.builder-image.pull' is set to 'never'.\");\n                        } else {\n                            log.infof(\"Could not find builder image '%s' locally, pulling the builder image\",\n                                    effectiveBuilderImage);\n                        }\n                    } else {\n                        log.infof(\"Found builder image '%s' locally, skipping image pulling\", effectiveBuilderImage);\n                        return;\n                    }\n                } catch (Exception e) {\n                    throw new RuntimeException(\"Failed to check status of builder image '\" + effectiveBuilderImage + \"'\", e);\n                }\n            }\n\n            try {\n                log.infof(\"Pulling builder image '%s'\", effectiveBuilderImage);\n                pull(effectiveBuilderImage, processInheritIODisabled);\n            } catch (Exception e) {\n                log.infof(\"Retrying in 5 seconds\");\n                try {\n                    Thread.sleep(5_000L);\n                } catch (InterruptedException e1) {\n                    throw new RuntimeException(e1);\n                }\n                log.infof(\"Pulling builder image '%s' (take 2)\", effectiveBuilderImage);\n                pull(effectiveBuilderImage, processInheritIODisabled);\n            }\n        }\n","sourceCodeStart":63,"sourceCodeEnd":99,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/NativeImageBuildContainerRunner.java#L63-L99","documentation":"Before pulling the native builder image, Quarkus runs a command (e.g. 'docker inspect'/'podman image exists') to determine if the image is available locally. If that inspection command itself fails with an exception, setup() wraps it in this RuntimeException so the underlying cause (daemon not running, runtime not installed, permissions) is preserved.","triggerScenarios":"The local image-inspection command throws when executed — e.g. Docker/Podman daemon not running, container runtime binary missing from PATH, or the status-check subprocess fails unexpectedly while quarkus.native.builder-image.pull=missing and the image has not been pulled.","commonSituations":"CI runners where the Docker daemon isn't started; podman-in-podman setups; Docker Desktop not running locally; insufficient permissions to talk to the container runtime socket.","solutions":["Read the 'Caused by' of this exception to identify the underlying container-runtime failure","Start the Docker/Podman daemon (systemctl start docker / podman system service, or launch Docker Desktop)","Ensure the container runtime binary is on PATH and Quarkus points at the right one (quarkus.native.container-runtime=docker|podman)","As a workaround, pull the builder image manually so the status check is skipped"],"exampleFix":"// before: daemon stopped -> inspection throws\nsudo systemctl start docker\n// or pin the runtime you actually have\nquarkus.native.container-runtime=podman","handlingStrategy":"retry","validationCode":"try {\n    new ProcessBuilder(\"docker\", \"info\").start().waitFor();\n} catch (Exception e) {\n    throw new IllegalStateException(\"Container runtime unavailable before native build\", e);\n}","typeGuard":null,"tryCatchPattern":"try {\n    buildNative();\n} catch (RuntimeException e) {\n    if (e.getMessage().startsWith(\"Failed to check status of builder image\")) {\n        // inspect e.getCause(); ensure daemon is running, then retry\n    }\n}","preventionTips":["Ensure Docker/Podman daemon is healthy before builds","Set quarkus.native.container-runtime explicitly to the installed runtime","Pre-pull the builder image so the status-check path is skipped"],"tags":["docker","container-runtime","native-image","build-time"],"backgroundTag":"container-daemon-unavailable","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}