{"record":{"id":"42f488283cfcc99b","repo":"OpenAPITools/openapi-generator","slug":"serializationlibrary-is-an-invalid-enum-property","errorCode":null,"errorMessage":"{serializationLibrary} is an invalid enum property naming option. Please choose from:\n  {availableValues}","messagePattern":"(.+?) is an invalid enum property naming option\\. Please choose from:\n  (.+?)","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaMicronautAbstractCodegen.java","lineNumber":719,"sourceCode":"                .put(\"replaceDotsWithUnderscore\", new ReplaceDotsWithUnderscoreLambda());\n    }\n\n    private static class ReplaceDotsWithUnderscoreLambda implements Mustache.Lambda {\n        @Override\n        public void execute(final Template.Fragment fragment, final Writer writer) throws IOException {\n            writer.write(fragment.execute().replace('.', '_'));\n        }\n    }\n\n    public void setSerializationLibrary(final String serializationLibrary) {\n        try {\n            this.serializationLibrary = JavaMicronautAbstractCodegen.SERIALIZATION_LIBRARY_TYPE.valueOf(serializationLibrary).name();\n        } catch (IllegalArgumentException ex) {\n            StringBuilder sb = new StringBuilder(serializationLibrary + \" is an invalid enum property naming option. Please choose from:\");\n            for (JavaMicronautAbstractCodegen.SERIALIZATION_LIBRARY_TYPE availableSerializationLibrary : JavaMicronautAbstractCodegen.SERIALIZATION_LIBRARY_TYPE.values()) {\n                sb.append(\"\\n  \").append(availableSerializationLibrary.name());\n            }\n            throw new RuntimeException(sb.toString());\n        }\n    }\n\n    @Override\n    public void postProcess() {\n        if (!isQuietMode()) {\n            System.out.println(\"################################################################################\");\n            System.out.println(\"# Thanks for using OpenAPI Generator.                                          #\");\n            System.out.println(\"# Please consider donating to help us maintain this project \\uD83D\\uDE4F                 #\");\n            System.out.println(\"# https://opencollective.com/openapi_generator/donate                          #\");\n            System.out.println(\"#                                                                              #\");\n            System.out.println(\"# WARNING! This generator is outdated. Please use the official generator for   #\");\n            System.out.println(\"# Micronaut: https://github.com/micronaut-projects/micronaut-openapi with the  #\");\n            System.out.println(\"# help of the plugin for Gradle                                                #\");\n            System.out.println(\"# (https://github.com/micronaut-projects/micronaut-gradle-plugin) and Maven    #\");\n            System.out.println(\"# (https://github.com/micronaut-projects/micronaut-maven-plugin).              #\");\n            System.out.println(\"#                                                                              #\");\n            System.out.println(\"# Supported generators for micronaut client / server side, java and kotlin     #\");","sourceCodeStart":701,"sourceCodeEnd":737,"githubUrl":"https://github.com/OpenAPITools/openapi-generator/blob/fcec517be3cf5b7964296bcba25fbc97541484e7/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaMicronautAbstractCodegen.java#L701-L737","documentation":"setSerializationLibrary maps the 'serializationLibrary' additional property of the Micronaut Java generators onto the enum {jackson, micronaut_serde_jackson} via valueOf(). An unknown or case-mismatched value raises IllegalArgumentException, rethrown as a RuntimeException that lists the two valid names. The message text ('invalid enum property naming option') is copy-pasted from modelPropertyNaming code and misleading — this error is about the serialization library. Default is jackson.","triggerScenarios":"`-g java-micronaut-server -p serializationLibrary=gson` or `moshi` (valid in other generators but not here); `micronaut-serde-jackson` written with hyphens instead of underscores; `Jackson` capitalized; programmatic setSerializationLibrary(\"serde\").","commonSituations":"Reusing an options block from the kotlin or java generators where gson/moshi are valid; hyphen-vs-underscore confusion with the enum constant micronaut_serde_jackson; assuming any Jackson-class library name is accepted.","solutions":["Use `serializationLibrary=jackson` (the default) or `serializationLibrary=micronaut_serde_jackson` (underscore form, meaning micronaut-serialization with Jackson annotations).","Remove the option to keep the jackson default.","If you copied gson/moshi from another generator's config, delete it here — the Micronaut templates ship no gson/moshi adapters."],"exampleFix":"# before\nopenapi-generator-cli generate -g java-micronaut -i api.yaml -p serializationLibrary=micronaut-serde-jackson\n# after\nopenapi-generator-cli generate -g java-micronaut -i api.yaml -p serializationLibrary=micronaut_serde_jackson","handlingStrategy":"validation","validationCode":"# shell: only two valid names for Micronaut serialization\nsl=\"${SERIALIZATION_LIBRARY:-jackson}\"\ncase \"$sl\" in\n  jackson|micronaut_serde_jackson) ;;\n  *) echo \"serializationLibrary must be jackson|micronaut_serde_jackson, got: $sl\" >&2; exit 2 ;;\nesac","typeGuard":"enum MicronautSerialization { JACKSON, MICRONAUT_SERDE_JACKSON }\n\nOptional<MicronautSerialization> asMicronautSerialization(String v) {\n    try {\n        return Optional.of(MicronautSerialization.valueOf(v));\n    } catch (IllegalArgumentException | NullPointerException e) {\n        return Optional.empty();\n    }\n}","tryCatchPattern":"try {\n    new DefaultGenerator().opts(clientOptInput).generate();\n} catch (RuntimeException e) {\n    // message lists the valid enum names even though the wording mentions 'property naming'\n    throw new IllegalStateException(\"Invalid Micronaut serializationLibrary: \" + e.getMessage(), e);\n}","preventionTips":["Do not reuse serializationLibrary values across generators — each generator has its own enum.","Remember underscores: micronaut_serde_jackson, never hyphens.","When embedding, validate against the enum via valueOf before calling the generator."],"tags":["openapi-generator","java","micronaut","configuration","serialization","jackson"],"backgroundTag":"invalid-serialization-library-option","analyzedSha":"fcec517be3cf5b7964296bcba25fbc97541484e7","analyzedAt":"2026-08-22T11:13:11.613Z","schemaVersion":2},"datasetVersion":"2026-08-22T14:17:55.899Z"}