OpenAPITools/openapi-generator · error · RuntimeException
{serializationLibrary} is an invalid enum property naming op
Error message
{serializationLibrary} is an invalid enum property naming option. Please choose from:
{availableValues} What it means
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.
Source
Thrown at modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaMicronautAbstractCodegen.java:719
.put("replaceDotsWithUnderscore", new ReplaceDotsWithUnderscoreLambda());
}
private static class ReplaceDotsWithUnderscoreLambda implements Mustache.Lambda {
@Override
public void execute(final Template.Fragment fragment, final Writer writer) throws IOException {
writer.write(fragment.execute().replace('.', '_'));
}
}
public void setSerializationLibrary(final String serializationLibrary) {
try {
this.serializationLibrary = JavaMicronautAbstractCodegen.SERIALIZATION_LIBRARY_TYPE.valueOf(serializationLibrary).name();
} catch (IllegalArgumentException ex) {
StringBuilder sb = new StringBuilder(serializationLibrary + " is an invalid enum property naming option. Please choose from:");
for (JavaMicronautAbstractCodegen.SERIALIZATION_LIBRARY_TYPE availableSerializationLibrary : JavaMicronautAbstractCodegen.SERIALIZATION_LIBRARY_TYPE.values()) {
sb.append("\n ").append(availableSerializationLibrary.name());
}
throw new RuntimeException(sb.toString());
}
}
@Override
public void postProcess() {
if (!isQuietMode()) {
System.out.println("################################################################################");
System.out.println("# Thanks for using OpenAPI Generator. #");
System.out.println("# Please consider donating to help us maintain this project \uD83D\uDE4F #");
System.out.println("# https://opencollective.com/openapi_generator/donate #");
System.out.println("# #");
System.out.println("# WARNING! This generator is outdated. Please use the official generator for #");
System.out.println("# Micronaut: https://github.com/micronaut-projects/micronaut-openapi with the #");
System.out.println("# help of the plugin for Gradle #");
System.out.println("# (https://github.com/micronaut-projects/micronaut-gradle-plugin) and Maven #");
System.out.println("# (https://github.com/micronaut-projects/micronaut-maven-plugin). #");
System.out.println("# #");
System.out.println("# Supported generators for micronaut client / server side, java and kotlin #");View on GitHub (pinned to fcec517be3)
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.
Example fix
# before openapi-generator-cli generate -g java-micronaut -i api.yaml -p serializationLibrary=micronaut-serde-jackson # after openapi-generator-cli generate -g java-micronaut -i api.yaml -p serializationLibrary=micronaut_serde_jackson
Defensive patterns
Strategy: validation
Validate before calling
# shell: only two valid names for Micronaut serialization
sl="${SERIALIZATION_LIBRARY:-jackson}"
case "$sl" in
jackson|micronaut_serde_jackson) ;;
*) echo "serializationLibrary must be jackson|micronaut_serde_jackson, got: $sl" >&2; exit 2 ;;
esac Type guard
enum MicronautSerialization { JACKSON, MICRONAUT_SERDE_JACKSON }
Optional<MicronautSerialization> asMicronautSerialization(String v) {
try {
return Optional.of(MicronautSerialization.valueOf(v));
} catch (IllegalArgumentException | NullPointerException e) {
return Optional.empty();
}
} Try / catch
try {
new DefaultGenerator().opts(clientOptInput).generate();
} catch (RuntimeException e) {
// message lists the valid enum names even though the wording mentions 'property naming'
throw new IllegalStateException("Invalid Micronaut serializationLibrary: " + e.getMessage(), e);
} Prevention
- 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.
When it happens
Trigger: `-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").
Common situations: 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.
Related errors
- Unexpected serializationLibrary value: {serializationLibrary
- Unexpected serializationLibrary value: {serializationLibrary
- Unexpected serializationLibrary value: {serializationLibrary
- useJackson3 is only supported for the 'native', 'apache-http
- Build tool "{buildTool}" is not supported or misspelled.
AI-assisted analysis of OpenAPITools/openapi-generator@fcec517be3 (2026-08-22).
Data as JSON: /api/errors/42f488283cfcc99b.
Report an issue: GitHub.