{"record":{"id":"92ee95878ac6ab35","repo":"gradle/gradle","slug":"no-value-with-key-s-specified-in-wrapper-proper","errorCode":null,"errorMessage":"No value with key '%s' specified in wrapper properties file '%s'.","messagePattern":"No value with key '(.+?)' specified in wrapper properties file '(.+?)'\\.","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"platforms/core-runtime/wrapper-shared/src/main/java/org/gradle/wrapper/WrapperExecutor.java","lineNumber":151,"sourceCode":"    // Returns null only in the !required branch; callers passing required=true rely on a non-null result.\n    @SuppressWarnings(\"NullAway\")\n    private String getProperty(String propertyName, @Nullable String defaultValue, boolean required) {\n        String value = properties.getProperty(propertyName);\n        if (value != null) {\n            return value;\n        }\n        if (defaultValue != null) {\n            return defaultValue;\n        }\n        if (required) {\n            return reportMissingProperty(propertyName);\n        } else {\n            return null;\n        }\n    }\n\n    private String reportMissingProperty(String propertyName) {\n        throw new RuntimeException(String.format(\n                \"No value with key '%s' specified in wrapper properties file '%s'.\", propertyName, propertiesFile));\n    }\n}\n","sourceCodeStart":133,"sourceCodeEnd":155,"githubUrl":"https://github.com/gradle/gradle/blob/534f27719b66953f95cc907aae7f2c1b12f5482d/platforms/core-runtime/wrapper-shared/src/main/java/org/gradle/wrapper/WrapperExecutor.java#L133-L155","documentation":"WrapperExecutor.getProperty(..., required=true) terminates in reportMissingProperty, which throws naming the exact key and file. In practice distributionUrl is the only required wrapper property (all others have defaults); the wrapper cannot proceed without knowing which distribution to install.","triggerScenarios":"gradle/wrapper/gradle-wrapper.properties exists but lacks a readable distributionUrl key (misspelled, commented out, wrong case, or BOM-prefixed so java.util.Properties does not match it); any ./gradlew launch then fails during wrapper configuration.","commonSituations":"Manually created or templated wrapper files; keys renamed during Gradle upgrades; properties files saved with exotic encodings; empty properties files committed by accident.","solutions":["Add the key exactly as 'distributionUrl' with a full URL: distributionUrl=https://services.gradle.org/distributions/gradle-<version>-bin.zip","Uncomment the line and verify exact casing and no leading spaces or BOM bytes","Regenerate the wrapper ('gradle wrapper --gradle-version <v>') to obtain a canonical file"],"exampleFix":"# before — key commented out\n#distributionUrl=https\\://services.gradle.org/distributions/gradle-8.10-bin.zip\n\n# after\ndistributionUrl=https\\://services.gradle.org/distributions/gradle-8.10-bin.zip","handlingStrategy":"validation","validationCode":"# assert the one required key before building\nif ! grep -qE '^distributionUrl=' gradle/wrapper/gradle-wrapper.properties; then\n  echo \"gradle-wrapper.properties is missing distributionUrl\"; exit 1\nfi","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always create wrapper files via 'gradle wrapper --gradle-version <v>'","Review diffs of gradle-wrapper.properties as carefully as build scripts","Add a repo hygiene CI check verifying required wrapper keys exist"],"tags":["gradle-wrapper","configuration","missing-property","distribution-url"],"backgroundTag":"missing-config-property","analyzedSha":"534f27719b66953f95cc907aae7f2c1b12f5482d","analyzedAt":"2026-08-22T08:09:12.375Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}