{"record":{"id":"fc193c190248b7d8","repo":"quarkusio/quarkus","slug":"manifest-entry-name-key-is-invalid-characte","errorCode":null,"errorMessage":"Manifest entry name + key + is invalid. \" characters are not allowed.","messagePattern":"Manifest entry name \\+ key \\+ is invalid\\. \" characters are not allowed\\.","errorType":"exception","errorClass":"GradleException","httpStatus":null,"severity":"error","filePath":"devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/AbstractQuarkusExtension.java","lineNumber":185,"sourceCode":"    private static FileCollection dependencyClasspath(SourceSet mainSourceSet) {\n        return mainSourceSet.getCompileClasspath().plus(mainSourceSet.getRuntimeClasspath())\n                .plus(mainSourceSet.getAnnotationProcessorPath())\n                .plus(mainSourceSet.getResources());\n    }\n\n    protected static String toManifestAttributeKey(String key) {\n        if (key.contains(\"\\\"\")) {\n            throw new GradleException(\"Manifest entry name \" + key + \" is invalid. \\\" characters are not allowed.\");\n        }\n        return String.format(\"%s.\\\"%s\\\"\", MANIFEST_ATTRIBUTES_PROPERTY_PREFIX, key);\n    }\n\n    protected static String toManifestSectionAttributeKey(String section, String key) {\n        if (section.contains(\"\\\"\")) {\n            throw new GradleException(\"Manifest section name \" + section + \" is invalid. \\\" characters are not allowed.\");\n        }\n        if (key.contains(\"\\\"\")) {\n            throw new GradleException(\"Manifest entry name \" + key + \" is invalid. \\\" characters are not allowed.\");\n        }\n        return String.format(\"%s.\\\"%s\\\".\\\"%s\\\"\", MANIFEST_SECTIONS_PROPERTY_PREFIX, section,\n                key);\n    }\n}\n","sourceCodeStart":167,"sourceCodeEnd":191,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/AbstractQuarkusExtension.java#L167-L191","documentation":"Thrown by AbstractQuarkusExtension.toManifestSectionAttributeKey() when the manifest ENTRY key within a configured section contains a double-quote character. Like section names, the entry key is interpolated into a property key and quotes are not allowed.","triggerScenarios":"Configuring quarkus.package.jar.manifest.sections.<section> with an attribute key containing '\"', evaluated when constructing the nested manifest section property keys.","commonSituations":"Typos with quotes in application.properties; generated attribute keys from unvalidated input; mistaken belief that quotes are needed around values (quotes belong in values, not keys).","solutions":["Remove the double-quote from the attribute (entry) key","Keep quotes only in the value part, never in key names","Validate programmatically generated keys before setting them in config"],"exampleFix":"// before\nquarkus.package.jar.manifest.sections.\"My-Section\".\"Bad\\\"Key\"=value\n// after\nquarkus.package.jar.manifest.sections.\"My-Section\".\"Good-Key\"=value","handlingStrategy":"validation","validationCode":"fun requireNoQuoteEntryKey(key: String) {\n  require('\"' !in key) { \"Manifest entry key must not contain quotes: $key\" }\n}","typeGuard":"def isSafeSectionEntry(section: String, key: String): Boolean =\n  !section.contains('\"') && !key.contains('\"')","tryCatchPattern":"try { quarkusBuildTask.configureManifest() } catch (e: GradleException) {\n  if (e.message?.startsWith(\"Manifest entry name\") == true &&\n      e.message?.contains(\"characters are not allowed\") == true) {\n    logger.error(\"Remove quotes from manifest section entry keys\")\n  } else throw e\n}","preventionTips":["Put quotes only in values, never in keys","Sanitize programmatic entry keys","Lint application.properties for stray quotes in manifest config"],"tags":["gradle","manifest","validation"],"backgroundTag":"invalid-manifest-attribute-name","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"}