{"record":{"id":"02a5ab8d3e64ee0e","repo":"quarkusio/quarkus","slug":"no-quarkus-platforms-found-in-the-project","errorCode":null,"errorMessage":"No Quarkus platforms found in the project","messagePattern":"No Quarkus platforms found in the project","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusPlatformTask.java","lineNumber":103,"sourceCode":"\n        final Configuration boms = project.getConfigurations()\n                .detachedConfiguration(bomDeps.toArray(new org.gradle.api.artifacts.Dependency[0]));\n        final Set<ArtifactKey> processedKeys = new HashSet<>(1);\n\n        List<ArtifactCoords> platforms = new ArrayList<>();\n        boms.getResolutionStrategy().eachDependency(d -> {\n            if (!d.getTarget().getName().endsWith(BootstrapConstants.PLATFORM_DESCRIPTOR_ARTIFACT_ID_SUFFIX)\n                    || !processedKeys.add(ArtifactKey.ga(d.getTarget().getGroup(), d.getTarget().getName()))) {\n                return;\n            }\n            final ArtifactCoords platform = ArtifactCoords.of(d.getTarget().getGroup(), d.getTarget().getName(),\n                    d.getTarget().getVersion(), \"json\", d.getTarget().getVersion());\n            platforms.add(platform);\n        });\n        boms.getResolvedConfiguration();\n\n        if (platforms.isEmpty()) {\n            throw new RuntimeException(\"No Quarkus platforms found in the project\");\n        }\n        return platforms;\n    }\n\n    protected String quarkusCoreVersion() {\n        final List<Dependency> bomDeps = listProjectBoms(project);\n        if (bomDeps.isEmpty()) {\n            throw new GradleException(\"No platforms detected in the project\");\n        }\n\n        final Configuration boms = project.getConfigurations()\n                .detachedConfiguration(bomDeps.toArray(new org.gradle.api.artifacts.Dependency[0]));\n\n        final AtomicReference<String> quarkusVersionRef = new AtomicReference<>();\n        boms.getResolutionStrategy().eachDependency(d -> {\n            if (quarkusVersionRef.get() == null && d.getTarget().getName().equals(\"quarkus-core\")\n                    && d.getTarget().getGroup().equals(\"io.quarkus\")) {\n                quarkusVersionRef.set(d.getTarget().getVersion());","sourceCodeStart":85,"sourceCodeEnd":121,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusPlatformTask.java#L85-L121","documentation":"importedPlatforms() resolves the imported BOMs and builds a list of platform ArtifactCoords. Even when BOMs exist, if none of them resolve to an actual Quarkus platform (with a JSON descriptor), it throws RuntimeException(\"No Quarkus platforms found in the project\"). This means BOMs are present but none is a recognized Quarkus platform.","triggerScenarios":"listProjectBoms returns BOM dependencies, but after resolution none produce a platform entry — e.g. importing unrelated/non-Quarkus BOMs, or a BOM with an invalid/missing platform descriptor whose resolution yields nothing.","commonSituations":"Importing only third-party BOMs (Spring BOM, etc.) plus Quarkus extensions without a Quarkus platform BOM; using an old quarkus-bom artifact layout; version that doesn't publish the platform JSON descriptor.","solutions":["Add the Quarkus platform BOM (io.quarkus.platform:quarkus-bom:<version>) to the dependencies.","Verify the imported platform version exists and publishes its catalog descriptor (check the Maven repository).","Remove unrelated BOMs confusion by ensuring at least one io.quarkus.platform BOM is enforced."],"exampleFix":"// before\ndependencies {\n    implementation enforcedPlatform(\"org.springframework.boot:spring-boot-bom:3.2.0\")\n}\n\n// after\ndependencies {\n    implementation enforcedPlatform(\"io.quarkus.platform:quarkus-bom:3.15.1\")\n}","handlingStrategy":"validation","validationCode":"// ensure at least one Quarkus platform BOM among imported BOMs\ndef quarkusBom = configurations.implementation.allDependencies.any {\n    it.group == 'io.quarkus.platform' && it.artifactId?.startsWith('quarkus-bom')\n}\nassert quarkusBom : 'No Quarkus platform BOM imported'","typeGuard":null,"tryCatchPattern":"try { resolve platforms } catch (RuntimeException e) { if (e.message.contains('No Quarkus platforms found')) { /* verify BOM coordinates/version */ } }","preventionTips":["Use official io.quarkus.platform BOMs, not third-party or hand-rolled BOMs.","Confirm the platform version exists on Maven Central / your repository.","Do not exclude the platform descriptor resources from resolution."],"tags":["gradle","platform","bom","resolution"],"backgroundTag":"missing-platform-bom","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"}