{"record":{"id":"87cbb399fb61ceef","repo":"quarkusio/quarkus","slug":"failed-to-resolve-required-property-name-87cbb3","errorCode":null,"errorMessage":"Failed to resolve required property ${name}","messagePattern":"Failed to resolve required property (.+?)","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"independent-projects/tools/devtools-common/src/main/java/io/quarkus/platform/tools/ToolsUtils.java","lineNumber":291,"sourceCode":"                                    return e.getKey();\n                                }\n                                String key = e.getKey();\n                                if (\"dockerfile.native-micro\".equals(key)) {\n                                    key += \".from\";\n                                }\n\n                                return \"tooling-dockerfiles.\" + key;\n                            },\n                            Entry::getValue, (v1, v2) -> v1));\n        }\n\n        return projectData;\n    }\n\n    public static String requireProperty(Properties props, String name) {\n        final String value = props.getProperty(name);\n        if (value == null) {\n            throw new IllegalStateException(\"Failed to resolve required property \" + name);\n        }\n        return value;\n    }\n\n    public static String getMavenPluginArtifactId(Properties props) {\n        return props.getProperty(ToolsConstants.PROP_QUARKUS_MAVEN_PLUGIN_ARTIFACT_ID);\n    }\n\n    public static String getMavenPluginGroupId(Properties props) {\n        return props.getProperty(ToolsConstants.PROP_QUARKUS_MAVEN_PLUGIN_GROUP_ID);\n    }\n\n    public static String getQuarkusCoreVersion(Properties props) {\n        return props.getProperty(ToolsConstants.PROP_QUARKUS_CORE_VERSION);\n    }\n\n    public static String requireQuarkusCoreVersion(Properties props) {\n        return requireProperty(props, ToolsConstants.PROP_QUARKUS_CORE_VERSION);","sourceCodeStart":273,"sourceCodeEnd":309,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/independent-projects/tools/devtools-common/src/main/java/io/quarkus/platform/tools/ToolsUtils.java#L273-L309","documentation":"Thrown by ToolsUtils.requireProperty when a required property is missing (null) from the provided Properties object. It is a fast-fail guard used when reading tool configuration properties (e.g. plugin artifact ids, versions) that must always be present.","triggerScenarios":"Calling requireProperty(props, name) where props does not contain key 'name' — typically a properties file (quarkus.properties bundled constants) that was truncated, customized, or from a mismatched build.","commonSituations":"Hand-edited or filtered-out properties file; using tool constants JAR from a different Quarkus version; resource filtering disabled so placeholders were not substituted.","solutions":["Identify the missing property from the message and add it to the properties source","Restore the original unmodified properties file shipped with the tooling","Ensure Maven resource filtering/placeholder substitution ran so ${...} placeholders got real values","Check that you are using matching versions of the tools and properties resources"],"exampleFix":"// before: quarkus.properties missing the key\n# quarkus-maven-plugin-artifact-id absent\n// after\nquarkus-maven-plugin-artifact-id=quarkus-maven-plugin\nquarkus-maven-plugin-group-id=io.quarkus","handlingStrategy":"validation","validationCode":"// Instead of requireProperty failing at runtime, check presence first\nif (!props.containsKey(name)) {\n    throw new IllegalStateException(\"Property \" + name + \" missing; check your properties file\");\n}","typeGuard":null,"tryCatchPattern":"try {\n    String v = ToolsUtils.requireProperty(props, name);\n} catch (IllegalStateException e) {\n    // fall back to a default or report the missing key: e.getMessage() minus prefix is the key\n    throw e;\n}","preventionTips":["Never hand-edit the tool properties file; restore from the original artifact","Enable Maven resource filtering so ${...} placeholders are substituted","Add a startup check that all required property keys exist"],"tags":["configuration","properties","validation"],"backgroundTag":"missing-required-argument","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"}