{"record":{"id":"6dbef13071a54cb0","repo":"quarkusio/quarkus","slug":"unable-to-deserialize-the-dev-mode-context-does-t","errorCode":null,"errorMessage":"Unable to deserialize the dev mode context. Does the Quarkus plugin version match the version of Quarkus that is in use?","messagePattern":"Unable to deserialize the dev mode context\\. Does the Quarkus plugin version match the version of Quarkus that is in use\\?","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"critical","filePath":"core/deployment/src/main/java/io/quarkus/deployment/dev/DevModeMain.java","lineNumber":62,"sourceCode":"    private volatile CuratedApplication curatedApplication;\n    private Closeable realCloseable;\n\n    public DevModeMain(DevModeContext context) {\n        this(context, null);\n    }\n\n    public DevModeMain(DevModeContext context, ApplicationModel appModel) {\n        this.context = context;\n        this.appModel = appModel;\n    }\n\n    public static void main(String... args) throws Exception {\n        try (InputStream devModeCp = DevModeMain.class.getClassLoader().getResourceAsStream(DEV_MODE_CONTEXT)) {\n            DevModeContext context;\n            try {\n                context = (DevModeContext) new ObjectInputStream(new DataInputStream(devModeCp)).readObject();\n            } catch (Exception e) {\n                throw new RuntimeException(\n                        \"Unable to deserialize the dev mode context. Does the Quarkus plugin version match the version of Quarkus that is in use?\",\n                        e);\n            }\n            context.setArgs(args);\n            DevModeMain devModeMain = new DevModeMain(context);\n            devModeMain.start();\n        }\n    }\n\n    public void start() throws Exception {\n        //propagate system props\n        propagateSystemProperties();\n        prepareJVMSettings();\n\n        try {\n            QuarkusBootstrap.Builder bootstrapBuilder = QuarkusBootstrap.builder()\n                    .setApplicationRoot(getApplicationBuildDirs())\n                    .setExistingModel(appModel)","sourceCodeStart":44,"sourceCodeEnd":80,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/core/deployment/src/main/java/io/quarkus/deployment/dev/DevModeMain.java#L44-L80","documentation":"DevModeMain (the entry point launched by the Quarkus Maven/Gradle plugin for dev mode) deserializes a DevModeContext object that the build tool wrote to the DEV_MODE_CONTEXT classpath resource. If deserialization fails — most commonly because the serialized stream was written by an incompatible plugin version — this RuntimeException is thrown telling you the plugin and Quarkus versions likely don't match.","triggerScenarios":"Running quarkus:dev (or gradle quarkusDev) where the build plugin's DevModeContext serialization is incompatible with the Quarkus core version on the classpath; corrupted or stale dev-mode-context resource in the classpath.","commonSituations":"Mixing Quarkus versions (e.g. BOM updated but plugin not, or a locally built quarkus core with a released plugin); IDE-launched dev mode with stale build artifacts; upgrading Quarkus without rebuilding.","solutions":["Align the Quarkus Maven/Gradle plugin version with the Quarkus BOM/platform version in your build file.","Run a clean build (mvn clean or gradle clean) to remove the stale serialized dev mode context.","If using a locally built Quarkus, rebuild and install all modules (./mvnw install -Dquickly) so plugin and core match.","Invalidate IDE caches / re-import the project to clear stale classpath entries."],"exampleFix":"// before (pom.xml)\n<quarkus.platform.version>3.14.0</quarkus.platform.version>\n<!-- plugin pinned to 3.12.0 -->\n\n// after\n<quarkus.platform.version>3.14.0</quarkus.platform.version>\n<!-- plugin managed by the same BOM: 3.14.0 -->","handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n    // start dev mode\n} catch (RuntimeException e) {\n    if (e.getMessage() != null && e.getMessage().contains(\"Unable to deserialize the dev mode context\")) {\n        // stop, clean, align plugin/BOM versions, restart\n    }\n}","preventionTips":["Manage plugin and platform versions from the same Quarkus BOM.","Avoid mixing locally built and released Quarkus artifacts.","Clean the project after upgrading Quarkus before starting dev mode."],"tags":["quarkus","dev-mode","deserialization","version-mismatch"],"backgroundTag":"version-mismatch","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"}