{"record":{"id":"c907da8c6c3bd670","repo":"quarkusio/quarkus","slug":"no-platforms-detected-in-the-project-c907da","errorCode":null,"errorMessage":"No platforms detected in the project","messagePattern":"No platforms detected in the project","errorType":"exception","errorClass":"GradleException","httpStatus":null,"severity":"error","filePath":"devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusPlatformTask.java","lineNumber":83,"sourceCode":"    }\n\n    protected ExtensionCatalogResolver getExtensionCatalogResolver(MessageWriter log) {\n        if (catalogResolver == null) {\n            try {\n                catalogResolver = QuarkusProjectHelper.isRegistryClientEnabled()\n                        ? QuarkusProjectHelper.getCatalogResolver(log)\n                        : ExtensionCatalogResolver.empty();\n            } catch (RegistryResolutionException e) {\n                throw new RuntimeException(\"Failed to initialize Quarkus extension catalog resolver\", e);\n            }\n        }\n        return catalogResolver;\n    }\n\n    protected List<ArtifactCoords> importedPlatforms() {\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        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","sourceCodeStart":65,"sourceCodeEnd":101,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusPlatformTask.java#L65-L101","documentation":"importedPlatforms() first collects the project's imported BOM dependencies via listProjectBoms. If none are found, it throws GradleException(\"No platforms detected in the project\"). It means the project does not import any Quarkus platform BOM, which the platform task requires.","triggerScenarios":"Calling platform tasks (listExtensions, addExtension, removeExtension, updateProject) from a Gradle project whose build file has no Quarkus platform BOM (e.g. io.quarkus.platform:quarkus-bom) in its dependencies/enforcedPlatform block.","commonSituations":"New projects created without the Quarkus Gradle plugin setup; projects managing Quarkus versions manually without a BOM; running the task in a module that inherits no BOM; typo in the platform BOM coordinates.","solutions":["Import a Quarkus platform BOM, e.g. implementation(enforcedPlatform(\"io.quarkus.platform:quarkus-bom:3.x.x\")).","If the project should not need platform tasks, do not invoke quarkus platform Gradle tasks in this module.","Re-generate the project with the Quarkus project generator so the platform BOM is present."],"exampleFix":"// before\ndependencies {\n    implementation \"io.quarkus:quarkus-rest\"\n}\n\n// after\ndependencies {\n    implementation enforcedPlatform(\"io.quarkus.platform:quarkus-bom:3.15.1\")\n    implementation \"io.quarkus:quarkus-rest\"\n}","handlingStrategy":"validation","validationCode":"// verify a Quarkus platform BOM exists before invoking platform tasks\ndef hasBom = configurations.implementation.allDependencies.any { it.group == 'io.quarkus.platform' }\nassert hasBom : 'Import io.quarkus.platform:quarkus-bom before running Quarkus platform tasks'","typeGuard":null,"tryCatchPattern":"try { tasks.named('quarkusListExtensions').get().listExtensions() } catch (GradleException e) { if (e.message == 'No platforms detected in the project') { /* add enforcedPlatform(io.quarkus.platform:quarkus-bom) */ } }","preventionTips":["Always generate Quarkus projects via code.quarkus.io or the Gradle plugin so the BOM is included.","Never remove the enforcedPlatform(io.quarkus.platform:quarkus-bom) line from build.gradle.","Run platform tasks only in modules that declare the BOM."],"tags":["gradle","platform","bom","configuration"],"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"}