{"record":{"id":"829cbf60c49bb5a2","repo":"quarkusio/quarkus","slug":"the-container-with-the-label-dev-service-labe","errorCode":null,"errorMessage":"The container with the label '\" + DEV_SERVICE_LABEL + \"' is not compatible with Dev Services for Kubernetes. Stop it or disable Dev Services for Kubernetes.","messagePattern":"The container with the label '\" \\+ DEV_SERVICE_LABEL \\+ \"' is not compatible with Dev Services for Kubernetes\\. Stop it or disable Dev Services for Kubernetes\\.","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"extensions/kubernetes-client/deployment/src/main/java/io/quarkus/kubernetes/client/deployment/DevServicesKubernetesProcessor.java","lineNumber":482,"sourceCode":"        private KubeConfig getKubeconfigFromContainer() {\n            var image = getContainerInfo().getConfig().getImage();\n            String connectionAddress = resolvedConnectionAddress();\n            if (image.contains(\"rancher/k3s\")) {\n                return KubeConfigUtils\n                        .parseKubeConfig(KubeConfigUtils.replaceServerInKubeconfig(\"https://\" + connectionAddress,\n                                getFileContentFromContainer(K3S_KUBECONFIG)));\n            } else if (image.contains(\"kindest/node\")) {\n                return KubeConfigUtils\n                        .parseKubeConfig(KubeConfigUtils.replaceServerInKubeconfig(\"https://\" + connectionAddress,\n                                getFileContentFromContainer(KIND_KUBECONFIG)));\n            } else if (image.contains(\"k8s.gcr.io/kube-apiserver\") ||\n                    image.contains(\"registry.k8s.io/kube-apiserver\")) {\n                return getKubeconfigFromApiContainer(connectionAddress);\n            }\n\n            // this can happen only if the user manually start\n            // a DEV_SERVICE_LABEL labeled container with an invalid image name\n            throw new RuntimeException(\"The container with the label '\" + DEV_SERVICE_LABEL\n                    + \"' is not compatible with Dev Services for Kubernetes. Stop it or disable Dev Services for Kubernetes.\");\n        }\n\n        public Map<String, String> getKubeconfig() {\n            return getKubernetesClientConfigFromKubeConfig(getKubeconfigFromContainer());\n        }\n\n        protected KubeConfig getKubeconfigFromApiContainer(final String url) {\n            final Cluster cluster = new Cluster();\n            cluster.setName(APISERVER);\n            cluster.setCluster(new ClusterSpec());\n            cluster.getCluster().setServer(url);\n            cluster.getCluster().setCertificateAuthorityData((base64(getFileContentFromContainer(API_SERVER_CA))));\n            final User user = new User();\n            user.setName(APISERVER);\n            user.setUser(new UserSpec());\n            user.getUser().setClientKeyData(base64(getFileContentFromContainer(API_SERVER_KEY)));\n            user.getUser().setClientCertificateData(base64(getFileContentFromContainer(API_SERVER_CERT)));","sourceCodeStart":464,"sourceCodeEnd":500,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/kubernetes-client/deployment/src/main/java/io/quarkus/kubernetes/client/deployment/DevServicesKubernetesProcessor.java#L464-L500","documentation":"Dev Services for Kubernetes starts (or reuses) a container labeled with its DEV_SERVICE_LABEL, which must be a supported local cluster image (kind, or a kube-apiserver image). If a container carrying that label exists but has an unrecognized image, the kubeconfig cannot be extracted, so this RuntimeException is thrown.","triggerScenarios":"A Docker/Podman container with the Dev Services for Kubernetes label exists whose image is neither the expected kind image nor registry.k8s.io/kube-apiserver — typically because the user manually started or relabeled such a container.","commonSituations":"User manually ran a container with the quarkus dev-service label; leftover/renamed containers from a previous Quarkus version; label applied via docker-compose or custom scripts.","solutions":["Stop and remove the offending container: docker ps --filter label=<DEV_SERVICE_LABEL> then docker rm -f <container>.","Disable Dev Services for Kubernetes (quarkus.kubernetes-client.devservices.enabled=false) if you manage your own cluster.","Restart Docker/Podman and let Dev Services recreate a proper kind container on the next build/test run."],"exampleFix":"// before\ndocker run -l quarkus-dev-service.kubernetes my-random-image // breaks discovery\n// after\ndocker rm -f my-random-container\nquarkus.kubernetes-client.devservices.enabled=false // or let Dev Services start kind itself","handlingStrategy":"validation","validationCode":"// Find labeled containers and verify their image before relying on Dev Services\nfor (Container c : dockerClient.listContainers()) {\n    for (String lbl : c.getLabels().keySet()) {\n        if (lbl.startsWith(\"quarkus-dev-service.kubernetes\")) {\n            if (!c.getImage().contains(\"kindest/node\")\n                    && !c.getImage().contains(\"registry.k8s.io/kube-apiserver\")) {\n                throw new IllegalStateException(\"Incompatible labeled container: \" + c.getId()\n                    + \" image=\" + c.getImage() + \" — remove it or disable dev services\");\n            }\n        }\n    }\n}","typeGuard":null,"tryCatchPattern":"try {\n    runTests();\n} catch (RuntimeException e) {\n    if (e.getMessage().contains(\"not compatible with Dev Services for Kubernetes\")) {\n        exec(\"docker\", \"ps\", \"-q\", \"--filter\", \"label=quarkus-dev-service.kubernetes\")\n            .forEach(id -> exec(\"docker\", \"rm\", \"-f\", id));\n        runTests();\n    } else { throw e; }\n}","preventionTips":["Never manually attach the quarkus dev-service label to your own containers.","Set quarkus.kubernetes-client.devservices.enabled=false when managing your own local cluster.","Periodically prune stale dev-service containers (docker container prune / targeted rm)."],"tags":["kubernetes","dev-services","docker","container-label"],"backgroundTag":"incompatible-dev-service-container","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}