{"record":{"id":"74ac79ec9e2002a7","repo":"quarkusio/quarkus","slug":"unsupported-archive-type-archivetype","errorCode":null,"errorMessage":"Unsupported archive type: ${archiveType}","messagePattern":"Unsupported archive type: (.+?)","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/JvmStartupOptimizerArchiveBuildStep.java","lineNumber":193,"sourceCode":"        } else if (archiveType == JvmStartupOptimizerArchiveType.AOT\n                || archiveType == JvmStartupOptimizerArchiveType.SCC) {\n            List<String> additionalJvmArguments = new ArrayList<>();\n            if (packageConfig.jar().aot().additionalRecordingArgs().isPresent()) {\n                additionalJvmArguments.addAll(packageConfig.jar().aot().additionalRecordingArgs().get());\n            }\n            if (jvmStartupOptimizerArchiveContainerImage.isPresent()\n                    && jvmStartupOptimizerArchiveContainerImage.get().getAdditionalJvmArgs().isPresent()) {\n                additionalJvmArguments.addAll(jvmStartupOptimizerArchiveContainerImage.get().getAdditionalJvmArgs().get());\n            }\n            if (archiveType == JvmStartupOptimizerArchiveType.AOT) {\n                archivePath = createAot(jarResult, outputTarget, javaBinPath, containerImage, isFastJar,\n                        additionalJvmArguments);\n            } else {\n                archivePath = createScc(jarResult, outputTarget, javaBinPath, containerImage, isFastJar,\n                        additionalJvmArguments);\n            }\n        } else {\n            throw new IllegalStateException(\"Unsupported archive type: \" + archiveType);\n        }\n\n        if (archivePath == null) {\n            log.warnf(\"Unable to create %s.\", archiveType);\n            return;\n        }\n\n        log.infof(\"%s archive successfully created at: '%s'.\", archiveType, archivePath.toAbsolutePath().toString());\n        if (containerImage == null) {\n            if (archiveType == JvmStartupOptimizerArchiveType.AppCDS) {\n                log.infof(\n                        \"To ensure they are loaded properly, \" +\n                                \"run the application jar from its directory and also add the '-XX:SharedArchiveFile=app-cds.jsa' \"\n                                +\n                                \"JVM flag.\\nMoreover, make sure to use the exact same Java version (%s) to run the application as was used to build it.\",\n                        System.getProperty(\"java.version\"));\n            } else if (archiveType == JvmStartupOptimizerArchiveType.SCC) {\n                log.infof(","sourceCodeStart":175,"sourceCodeEnd":211,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/JvmStartupOptimizerArchiveBuildStep.java#L175-L211","documentation":"JvmStartupOptimizerArchiveBuildStep.build creates a JVM startup-optimization artifact (CDS/AppCDS archive or Spring-Boot-style training run / Serviceability Cache). The archive type comes from configuration; if it is neither the CDS path nor the supported training/scc path, the build fails with this IllegalStateException.","triggerScenarios":"quarkus.class-loading or the startup-optimizer config selects an archiveType value not handled by the if/else chain in build() — e.g. a typo, an enum value added by a newer Quarkus used with an older processor, or an invalid quarkus.package.*-optimized setting.","commonSituations":"Setting quarkus.package.create-appcds=true together with an unsupported archive/optimized type combination; upgrading Quarkus and stale config referencing removed/renamed archive types; hand-edited application.properties values.","solutions":["Check which archiveType value your configuration produces and correct typos.","Read the Quarkus docs for supported values (e.g. fast-jar with create-appcds=true, or the unified quarkus.package.jar.* options of your Quarkus version).","Remove deprecated/renamed packaging properties and reconfigure with current options.","Upgrade/downgrade Quarkus so config and code expectations match.","Inspect the build log just before the throw to see which branch was expected."],"exampleFix":"# before\nquarkus.package.type=my-custom-type\nquarkus.package.create-appcds=true\n# after\nquarkus.package.jar.type=fast-jar\nquarkus.package.jar.create-appcds=true","handlingStrategy":"validation","validationCode":"// Validate packaging config before build\nString type = System.getProperty(\"quarkus.package.jar.type\", \"fast-jar\");\nif (!java.util.Set.of(\"fast-jar\", \"legacy-jar\", \"mutable-jar\", \"uber-jar\").contains(type)) {\n    throw new IllegalStateException(\"Unsupported quarkus.package.jar.type: \" + type);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Only use documented values for quarkus.package.jar.type / create-appcds.","After Quarkus upgrades, review packaging config for renamed options.","Use quarkus config validation (build-time config errors surface at startup).","Never hand-invent archive type values in application.properties."],"tags":["config","cds","packaging"],"backgroundTag":"unsupported-archive-type","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"}