{"record":{"id":"8ae829b034c33a25","repo":"quarkusio/quarkus","slug":"manifest-section-name-section-is-invalid-cha","errorCode":null,"errorMessage":"Manifest section name ${section} is invalid. \" characters are not allowed.","messagePattern":"Manifest section name (.+?) is invalid\\. \" characters are not allowed\\.","errorType":"validation","errorClass":"MojoExecutionException","httpStatus":null,"severity":"error","filePath":"devtools/maven/src/main/java/io/quarkus/maven/QuarkusBootstrapProvider.java","lineNumber":454,"sourceCode":"                    referenceValue = projectProperties.getProperty(reference);\n                    if (referenceValue != null) {\n                        effectiveProperties.setProperty(reference, referenceValue);\n                    }\n                }\n            }\n            return effectiveProperties;\n        }\n\n        private String toManifestAttributeKey(String key) throws MojoExecutionException {\n            if (key.contains(\"\\\"\")) {\n                throw new MojoExecutionException(\"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        private String toManifestSectionAttributeKey(String section, String key) throws MojoExecutionException {\n            if (section.contains(\"\\\"\")) {\n                throw new MojoExecutionException(\n                        \"Manifest section name \" + section + \" is invalid. \\\" characters are not allowed.\");\n            }\n            if (key.contains(\"\\\"\")) {\n                throw new MojoExecutionException(\"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        protected CuratedApplication bootstrapApplication(QuarkusBootstrapMojo mojo, LaunchMode mode,\n                Consumer<QuarkusBootstrap.Builder> builderCustomizer) throws MojoExecutionException {\n            if (mode == LaunchMode.DEVELOPMENT) {\n                return devApp == null ? devApp = doBootstrap(mojo, mode, builderCustomizer) : devApp;\n            }\n            if (mode == LaunchMode.TEST) {\n                return testApp == null ? testApp = doBootstrap(mojo, mode, builderCustomizer) : testApp;\n            }\n            return prodApp == null ? prodApp = doBootstrap(mojo, mode, builderCustomizer) : prodApp;","sourceCodeStart":436,"sourceCodeEnd":472,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/maven/src/main/java/io/quarkus/maven/QuarkusBootstrapProvider.java#L436-L472","documentation":"QuarkusBootstrapProvider.toManifestSectionAttributeKey encodes a manifest section name and its entry into a property like quarkus.jar.manifest.sections.\"<section>\".\"<key>\". Because double quotes delimit the parts of that property name, a section name containing a double quote would break the encoding, so it is rejected with a MojoExecutionException.","triggerScenarios":"A <manifestSections><manifestSection><name>...</name> configuration block contains a \" character in the section name; getBuildSystemProperties iterates manifestSections and calls toManifestSectionAttributeKey, which throws on the first quote found in the section name.","commonSituations":"Copy-pasted section names with stray quotes; generated section names built from user input that included quotes; typos in the pom.xml manifestSections configuration.","solutions":["Remove the double-quote character from the manifest section name in the configuration","Check the <manifestSections> block in the pom.xml for stray or escaped quotes","Use a standard JAR manifest section name (e.g. an agent or signing section name without quotes)","If the name is derived from a Maven property, fix the property value"],"exampleFix":"// pom.xml\n// before\n<manifestSection>\n  <name>org.example.\"custom\"-section</name>\n  <manifestEntries><Foo>bar</Foo></manifestEntries>\n</manifestSection>\n// after\n<manifestSection>\n  <name>org.example.custom-section</name>\n  <manifestEntries><Foo>bar</Foo></manifestEntries>\n</manifestSection>","handlingStrategy":"validation","validationCode":"// Validate manifest section names before building\nString section = manifestSection.getName();\nif (section.contains(\"\\\"\")) {\n    throw new IllegalArgumentException(\"Manifest section name '\" + section + \"' must not contain double quotes\");\n}","typeGuard":"boolean isValidManifestSectionName(String section) {\n    return section != null && !section.contains(\"\\\"\");\n}","tryCatchPattern":"try {\n    quarkusBuildMojo.execute();\n} catch (MojoExecutionException e) {\n    if (e.getMessage().contains(\"Manifest section name\") && e.getMessage().contains(\"not allowed\")) {\n        getLog().error(\"Fix the manifestSection <name> in pom.xml: remove the double-quote character. \" + e.getMessage());\n    } else { throw e; }\n}","preventionTips":["Use standard JAR manifest section naming (no quotes) in manifestSections config","Never derive section names from unvalidated user input or unchecked Maven properties","Lint the POM manifestSections block for quote characters","Code-review any script that generates manifestSection configuration"],"tags":["maven","manifest","configuration","validation"],"backgroundTag":"invalid-manifest-section-name","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"}