{"record":{"id":"7e0eeabcc9f17edc","repo":"quarkusio/quarkus","slug":"the-stream-parameter-cannot-be-combined-with-pl","errorCode":null,"errorMessage":"The 'stream' parameter cannot be combined with 'platformGroupId', 'platformArtifactId', or 'platformVersion'. Please use either 'stream' or the platform coordinates, not both.","messagePattern":"The 'stream' parameter cannot be combined with 'platformGroupId', 'platformArtifactId', or 'platformVersion'\\. Please use either 'stream' or the platform coordinates, not both\\.","errorType":"exception","errorClass":"MojoExecutionException","httpStatus":null,"severity":"error","filePath":"devtools/maven/src/main/java/io/quarkus/maven/CreateProjectMojo.java","lineNumber":386,"sourceCode":"            if (refresh) {\n                getLog().debug(\"Clearing local extension catalog cache\");\n                catalogResolver.clearRegistryCache();\n            }\n        } catch (RegistryResolutionException e) {\n            // fall back to the default platform\n            catalogResolver = ExtensionCatalogResolver.empty();\n        }\n        return catalogResolver;\n    }\n\n    static ExtensionCatalog resolveExtensionsCatalog(AbstractMojo mojo, String groupId, String artifactId, String version,\n            String stream, ExtensionCatalogResolver catalogResolver, MavenArtifactResolver artifactResolver,\n            MessageWriter log)\n            throws MojoExecutionException {\n\n        if (!isBlank(stream)) {\n            if (!isBlank(groupId) || !isBlank(artifactId) || !isBlank(version)) {\n                throw new MojoExecutionException(\n                        \"The 'stream' parameter cannot be combined with 'platformGroupId', 'platformArtifactId', or 'platformVersion'.\"\n                                + \" Please use either 'stream' or the platform coordinates, not both.\");\n            }\n            return resolveExtensionsCatalogForStream(mojo, stream, catalogResolver);\n        }\n\n        if (catalogResolver.hasRegistries()) {\n            try {\n                return isBlank(groupId) && isBlank(artifactId) && isBlank(version)\n                        ? catalogResolver.resolveExtensionCatalog()\n                        : catalogResolver.resolveExtensionCatalog(List.of(\n                                ArtifactCoords.pom(getPlatformGroupId(mojo, groupId), getPlatformArtifactId(artifactId),\n                                        getPlatformVersion(mojo, version))));\n            } catch (RegistryResolutionException e) {\n                log.warn(e.getLocalizedMessage());\n                mojo.getLog().debug(e);\n            }\n        }","sourceCodeStart":368,"sourceCodeEnd":404,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/maven/src/main/java/io/quarkus/maven/CreateProjectMojo.java#L368-L404","documentation":"resolveExtensionsCatalog validates mutually exclusive parameters: if a non-blank 'stream' is supplied together with any of platformGroupId/platformArtifactId/platformVersion, it immediately throws this MojoExecutionException. Quarkus requires you to pick either the stream shorthand or explicit platform coordinates, never both, because they are two ways of locating the same platform.","triggerScenarios":"Running `mvn quarkus:create ... -Dstream=3.15 -DplatformGroupId=io.quarkus.platform` (or with platformArtifactId/platformVersion) — any combination of stream plus one or more explicit platform coordinate properties.","commonSituations":"Copy-pasting platform coordinates from an older recipe while also adding -Dstream; scripting that unconditionally passes all platform properties even when stream is set; CI templates mixing both configuration styles.","solutions":["Remove the platformGroupId/platformArtifactId/platformVersion properties and keep only -Dstream","Or remove -Dstream and specify the full platform coordinates explicitly","If the properties come from a CI pipeline or .mvn/maven.config file, strip the redundant ones there"],"exampleFix":"# before\nmvn quarkus:create -Dstream=3.15 -DplatformVersion=3.15.1\n# after\nmvn quarkus:create -Dstream=3.15","handlingStrategy":"validation","validationCode":"// Reject conflicting inputs before invoking the goal\nboolean hasStream = stream != null && !stream.isBlank();\nboolean hasCoords = notBlank(platformGroupId) || notBlank(platformArtifactId) || notBlank(platformVersion);\nif (hasStream && hasCoords) throw new IllegalArgumentException(\"Use either stream or platform coordinates, not both\");","typeGuard":null,"tryCatchPattern":"// Fail fast in scripts\nif [ -n \"$STREAM\" ] && [ -n \"$PLATFORM_VERSION\" ]; then echo \"conflict\" >&2; exit 2; fi","preventionTips":["Standardize your team on ONE style: either -Dstream or full platform coordinates","In CI templates, conditionally include platform properties only when stream is absent","Check .mvn/maven.config and settings for inherited properties"],"tags":["maven","configuration-conflict","platform"],"backgroundTag":"mutually-exclusive-parameters","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"}