{"record":{"id":"d3296500f0a003c1","repo":"quarkusio/quarkus","slug":"invalid-stream-value-stream-value-should-be","errorCode":null,"errorMessage":"Invalid stream value '${stream}'. Value should be specified as 'platformKey:streamId', for example: 3.15 or io.quarkus.platform:3.15","messagePattern":"Invalid stream value '(.+?)'\\. Value should be specified as 'platformKey:streamId', for example: 3\\.15 or io\\.quarkus\\.platform:3\\.15","errorType":"validation","errorClass":"MojoExecutionException","httpStatus":null,"severity":"error","filePath":"devtools/maven/src/main/java/io/quarkus/maven/CreateProjectMojo.java","lineNumber":419,"sourceCode":"                log.warn(e.getLocalizedMessage());\n                mojo.getLog().debug(e);\n            }\n        }\n        return resolveExtensionCatalogDirectly(mojo, groupId, artifactId, version, catalogResolver, artifactResolver, log);\n    }\n\n    private static ExtensionCatalog resolveExtensionsCatalogForStream(AbstractMojo mojo, String stream,\n            ExtensionCatalogResolver catalogResolver) throws MojoExecutionException {\n        if (!catalogResolver.hasRegistries()) {\n            throw new MojoExecutionException(\n                    \"Specifying a stream requires the Quarkus extension registry client.\"\n                            + \" Please make sure the registry client is enabled.\");\n        }\n        final PlatformStreamCoords streamCoords;\n        try {\n            streamCoords = PlatformStreamCoords.fromString(stream.trim());\n        } catch (IllegalArgumentException e) {\n            throw new MojoExecutionException(\n                    \"Invalid stream value '\" + stream + \"'.\"\n                            + \" Value should be specified as 'platformKey:streamId', for example: 3.15 or io.quarkus.platform:3.15\",\n                    e);\n        }\n        try {\n            return catalogResolver.resolveExtensionCatalog(streamCoords);\n        } catch (RegistryResolutionException e) {\n            throw new MojoExecutionException(\"Failed to resolve the extension catalog for stream '\" + stream + \"'\", e);\n        }\n    }\n\n    private static ExtensionCatalog resolveExtensionCatalogDirectly(AbstractMojo mojo, String groupId, String artifactId,\n            String version,\n            ExtensionCatalogResolver catalogResolver, MavenArtifactResolver artifactResolver, MessageWriter log) {\n        groupId = getPlatformGroupId(mojo, groupId);\n        artifactId = getPlatformArtifactId(artifactId);\n        version = getPlatformVersion(mojo, version);\n        final ExtensionCatalog catalog = ToolsUtils.resolvePlatformDescriptorDirectly(groupId, artifactId, version,","sourceCodeStart":401,"sourceCodeEnd":437,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/maven/src/main/java/io/quarkus/maven/CreateProjectMojo.java#L401-L437","documentation":"The 'stream' parameter is parsed via PlatformStreamCoords.fromString(), which expects 'platformKey:streamId' (or a bare stream id such as '3.15'). If parsing throws IllegalArgumentException, this MojoExecutionException is thrown, echoing the invalid value and the expected format. It is a pure input-format validation error raised before any network resolution happens.","triggerScenarios":"Running `mvn quarkus:create -Dstream=\"foo bar\"` or any stream value with an unexpected format, e.g. spaces, too many colons ('a:b:c'), or empty platformKey segment.","commonSituations":"Quoting issues in shells or CI where extra whitespace/characters sneak in; using a version string like 'v3.15.1' or '3.15.1.Final' where a stream id like '3.15' is expected; typos like '3_15'.","solutions":["Use the plain stream id format, e.g. -Dstream=3.15","Use the fully qualified form platformKey:streamId, e.g. -Dstream=io.quarkus.platform:3.15","Trim the value and remove stray quotes/whitespace before passing it","Check the accepted grammar in PlatformStreamCoords.fromString for your Quarkus version"],"exampleFix":"# before\nmvn quarkus:create -Dstream=\"3.15.1.Final\"\n# after\nmvn quarkus:create -Dstream=3.15","handlingStrategy":"validation","validationCode":"// Validate stream format before passing it\nstatic boolean isValidStream(String s) {\n    if (s == null) return false;\n    String v = s.trim();\n    return v.matches(\"[A-Za-z0-9._-]+(:[A-Za-z0-9._-]+)?\"); // e.g. 3.15 or io.quarkus.platform:3.15\n}","typeGuard":"boolean isPlatformKeyStreamId(String s) { return s != null && s.chars().filter(c -> c == ':').count() <= 1 && !s.trim().isEmpty(); }","tryCatchPattern":"try { coords = PlatformStreamCoords.fromString(stream.trim()); } catch (IllegalArgumentException e) { throw new IllegalArgumentException(\"Expected 'platformKey:streamId', e.g. 3.15; got: \" + stream, e); }","preventionTips":["Quote -Dstream values in shells to avoid whitespace injection","Use bare stream ids like 3.15 (no patch version, no 'v' prefix)","Sanitize CI variables (trim, strip quotes) before passing them"],"tags":["maven","validation","input-format"],"backgroundTag":"invalid-parameter-format","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"}