{"record":{"id":"ecda786cc8e94d45","repo":"quarkusio/quarkus","slug":"remote-dev-can-only-be-used-with-mutable-applicati","errorCode":null,"errorMessage":"remote-dev can only be used with mutable applications i.e. using the mutable-jar package type","messagePattern":"remote-dev can only be used with mutable applications i\\.e\\. using the mutable-jar package type","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"core/deployment/src/main/java/io/quarkus/deployment/dev/IsolatedRemoteDevModeMain.java","lineNumber":94,"sourceCode":"            if (opt.isPresent()) {\n                client = opt.get();\n                break;\n            }\n        }\n        if (client == null) {\n            client = new DefaultRemoteDevClient();\n        }\n        return client;\n    }\n\n    private synchronized JarResult generateApplication() {\n        ClassLoader old = Thread.currentThread().getContextClassLoader();\n        try {\n            //ok, we have resolved all the deps\n            try {\n                AugmentResult start = augmentAction.createProductionApplication();\n                if (!start.getJar().mutable()) {\n                    throw new RuntimeException(\n                            \"remote-dev can only be used with mutable applications i.e. \" +\n                                    \"using the mutable-jar package type\");\n                }\n                //now extract the artifacts, to mirror the remote side\n                DevModeTask.extractDevModeClasses(start.getJar().getPath().getParent(),\n                        curatedApplication.getApplicationModel(), null);\n                return start.getJar();\n            } catch (Throwable t) {\n                deploymentProblem.set(t);\n                log.error(\"Failed to generate Quarkus application\", t);\n                return null;\n            }\n        } finally {\n            Thread.currentThread().setContextClassLoader(old);\n        }\n    }\n\n    private RuntimeUpdatesProcessor setupRuntimeCompilation(DevModeContext context, Path applicationRoot)","sourceCodeStart":76,"sourceCodeEnd":112,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/core/deployment/src/main/java/io/quarkus/deployment/dev/IsolatedRemoteDevModeMain.java#L76-L112","documentation":"IsolatedRemoteDevModeMain.generateApplication() builds a production-style application for remote dev mode and then requires the resulting JAR to be mutable so it can be updated at runtime. If AugmentResult's JAR is not mutable (package type is not mutable-jar), a RuntimeException is thrown explaining remote-dev requires the mutable-jar package type.","triggerScenarios":"Running ./mvnw quarkus:remote-dev (or gradle quarkusRemoteDev) while quarkus.package.type (or quarkus.package.jar.type in newer versions) is not set to mutable-jar.","commonSituations":"Using remote development against a container/cloud host without configuring the mutable-jar packaging; default package type (fast-jar/legacy-jar) left in place.","solutions":["Set quarkus.package.type=mutable-jar (or quarkus.package.jar.type=mutable-jar in Quarkus 3.15+) in application.properties.","Re-run the remote-dev goal so the regenerated application is mutable.","Verify remote connection settings (quarkus.remote-dev.*), since a fresh augment is done each time."],"exampleFix":"// before (application.properties)\n# quarkus.package.type unset (defaults to fast-jar)\n\n// after\nquarkus.package.type=mutable-jar","handlingStrategy":"validation","validationCode":"// application.properties check before running remote-dev\n// quarkus.package.type=mutable-jar","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep mutable-jar packaging configured whenever remote-dev is used.","Document the packaging requirement in your remote-dev profile (e.g. a dedicated Maven profile).","Verify package type after augmenting if automating remote deployments."],"tags":["quarkus","remote-dev","packaging","dev-mode"],"backgroundTag":"unsupported-package-type","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"}