{"record":{"id":"94aa646287497a1f","repo":"quarkusio/quarkus","slug":"parameter-mode-was-set-to-mode-while-expecte","errorCode":null,"errorMessage":"Parameter 'mode' was set to '<mode>' while expected one of 'dev', 'test' or 'prod'","messagePattern":"Parameter 'mode' was set to '<mode>' while expected one of 'dev', 'test' or 'prod'","errorType":"exception","errorClass":"MojoExecutionException","httpStatus":null,"severity":"error","filePath":"devtools/maven/src/main/java/io/quarkus/maven/DependencyListMojo.java","lineNumber":237,"sourceCode":"        }\n        return result;\n    }\n\n    private ApplicationModel resolveApplicationModel(int flags) throws MojoExecutionException {\n        final ArtifactCoords appArtifact = ArtifactCoords.pom(project.getGroupId(), project.getArtifactId(),\n                project.getVersion());\n        final BootstrapAppModelResolver modelResolver;\n        try {\n            modelResolver = new BootstrapAppModelResolver(resolver())\n                    .setRuntimeModelOnly(((flags & DependencyFlags.RUNTIME_CP) > 0));\n            if (mode.equalsIgnoreCase(\"test\")) {\n                modelResolver.setTest(true);\n            } else if (mode.equalsIgnoreCase(\"dev\") || mode.equalsIgnoreCase(\"development\")) {\n                modelResolver.setDevMode(true);\n            } else if (mode.equalsIgnoreCase(\"prod\") || mode.isEmpty()) {\n                // ignore, that's the default\n            } else {\n                throw new MojoExecutionException(\n                        \"Parameter 'mode' was set to '\" + mode + \"' while expected one of 'dev', 'test' or 'prod'\");\n            }\n            modelResolver.setLegacyModelResolver(BootstrapAppModelResolver.isLegacyModelResolver(project.getProperties()));\n            return modelResolver.resolveModel(appArtifact);\n        } catch (Exception e) {\n            throw new MojoExecutionException(\"Failed to resolve application model \" + appArtifact + \" dependencies\", e);\n        }\n    }\n\n    protected MavenArtifactResolver resolver() {\n        return resolver == null\n                ? resolver = workspaceProvider.createArtifactResolver(BootstrapMavenContext.config()\n                        .setUserSettings(session.getRequest().getUserSettingsFile())\n                        .setRemoteRepositories(repos)\n                        .setPreferPomsFromWorkspace(true))\n                : resolver;\n    }\n}","sourceCodeStart":219,"sourceCodeEnd":255,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/maven/src/main/java/io/quarkus/maven/DependencyListMojo.java#L219-L255","documentation":"DependencyListMojo.resolveApplicationModel accepts a 'mode' parameter controlling the BootstrapAppModelResolver: test, dev/development, or prod (default/empty). Any other value throws a MojoExecutionException stating the invalid mode and the three accepted options.","triggerScenarios":"Running the goal with -Dmode=<value> (or pom config) set to something other than dev, development, test, prod, or empty — e.g. 'production', 'qa', or a misspelled value.","commonSituations":"Assuming 'production' works instead of 'prod'; passing environment names from other tooling (CI profiles); quoting/whitespace issues leaving stray characters in the mode value; upgrading from older versions with looser validation.","solutions":["Set mode to exactly one of dev, test, or prod (or leave it empty for prod)","Use 'development' if you prefer the long form of dev","Strip whitespace/quotes from the property in your CI script"],"exampleFix":"// before\nmvn quarkus:dependency-list -Dmode=production\n// after\nmvn quarkus:dependency-list -Dmode=prod","handlingStrategy":"validation","validationCode":"// Validate the mode value before invoking the goal\njava.util.Set<String> VALID = java.util.Set.of(\"dev\", \"development\", \"test\", \"prod\", \"\");\nif (!VALID.contains(mode == null ? \"\" : mode.trim())) {\n    throw new IllegalStateException(\"mode must be one of dev, test, prod (got: \" + mode + \")\");\n}","typeGuard":null,"tryCatchPattern":"try {\n    mojo.execute();\n} catch (MojoExecutionException e) {\n    if (e.getMessage().contains(\"Parameter 'mode' was set to\")) {\n        // re-run with -Dmode=dev|test|prod\n    }\n}","preventionTips":["Use only dev, test, or prod for -Dmode in all scripts and CI pipelines","Remember 'development' is an accepted alias for dev, but 'production' is NOT accepted for prod","Trim/quote-check dynamically computed mode values in CI"],"tags":["maven","configuration","validation"],"backgroundTag":"invalid-enumeration-value","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}