OpenAPITools/openapi-generator · error · RuntimeException
DateLibrary " + dateLibrary + " is not supported. Please use
Error message
DateLibrary " + dateLibrary + " is not supported. Please use java8
What it means
The scala-http4s (deprecated) client generator supports exactly one date library, java8 (java.time LocalDate/Instant/OffsetDateTime). processOpts() compares DateLibraries.java8.name() against the dateLibrary option and throws RuntimeException with 'Please use java8' for every other value.
Source
Thrown at modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaHttp4sClientCodegen.java:254
@Override
public void processOpts() {
super.processOpts();
if (DateLibraries.java8.name().equals(dateLibrary)) {
typeMapping.put("date", "LocalDate");
typeMapping.put("date-time", "Instant");
typeMapping.put("offset-date-time", "OffsetDateTime");
typeMapping.put("Date", "LocalDate");
typeMapping.put("DateTime", "Instant");
typeMapping.put("OffsetDateTime", "OffsetDateTime");
this.importMapping.put("LocalDate", "java.time.LocalDate");
this.importMapping.put("Instant", "java.time.Instant");
this.importMapping.put("OffsetDateTime", "java.time.OffsetDateTime");
additionalProperties.put("java8", "true");
} else {
String error = "DateLibrary " + dateLibrary + " is not supported. Please use java8";
LOGGER.error(error);
throw new RuntimeException(error);
}
if (additionalProperties.containsKey(CodegenConstants.PACKAGE_NAME)) {
packageName = (String) additionalProperties.get(CodegenConstants.PACKAGE_NAME);
setApiPackage(packageName + ".apis");
setModelPackage(packageName + ".models");
additionalProperties.put(CodegenConstants.API_PACKAGE, apiPackage());
additionalProperties.put(CodegenConstants.MODEL_PACKAGE, modelPackage());
} else {
additionalProperties.put(CodegenConstants.PACKAGE_NAME, packageName);
}
if (additionalProperties.containsKey(CodegenConstants.SOURCE_FOLDER)) {
//you can set your own source folder, i.e. target/scala-3.3.3/src_managed/main
this.sourceFolder = (String) additionalProperties.get(CodegenConstants.SOURCE_FOLDER);
}
if (additionalProperties.containsKey(CodegenConstants.ARTIFACT_ID)) {
this.artifactId = (String) additionalProperties.get(CodegenConstants.ARTIFACT_ID);
}View on GitHub (pinned to fcec517be3)
Solutions
- Remove the dateLibrary option (java8 is the only/default value)
- Or set it explicitly: -c dateLibrary=java8
- Consider migrating off this deprecated generator to an actively maintained Scala one if you need other date handling
Example fix
# before openapi-generator-cli generate -i api.yaml -g scala-http4s -c dateLibrary=threetenbp # after openapi-generator-cli generate -i api.yaml -g scala-http4s -c dateLibrary=java8
Defensive patterns
Strategy: validation
Validate before calling
# bash: the only valid dateLibrary for scala-http4s is java8
if [[ -n "${DATE_LIBRARY:-}" && "${DATE_LIBRARY}" != java8 ]]; then
echo 'scala-http4s supports only dateLibrary=java8; unsetting'; unset DATE_LIBRARY
fi
openapi-generator-cli generate -i api.yaml -g scala-http4s ${DATE_LIBRARY:+-c dateLibrary=$DATE_LIBRARY} Try / catch
try {
new DefaultGenerator().opts(input).generate();
} catch (RuntimeException e) {
// 'DateLibrary X is not supported. Please use java8' - drop the option or set java8, then rerun
} Prevention
- Do not share a dateLibrary setting across generators; java-only values like threetenbp break scala-http4s
- Omit the option when the default is fine (java8 is the only supported value)
- Plan migration off deprecated Scala generators where option sets keep shrinking
When it happens
Trigger: openapi-generator-cli generate -i api.yaml -g scala-http4s -c dateLibrary=threetenbp / java8-localdatetime / joda. Any value other than the exact string 'java8' fails; the option has historically had other values in sibling java generators, which is where bad values usually come from.
Common situations: Reusing a java/jaxrs or scala-akka config block that sets dateLibrary=threetenbp; CI jobs shared across generators templating one dateLibrary for all -g values; generator upgrades where previously-tolerated values became unsupported.
Related errors
- unsupported status " + resp.code
- Invalid dateLibrary. Must be 'java8' or 'joda'
- recursionLimit must be an integer, e.g. 2000.
- recursionLimit must be an integer, e.g. 2000.
- Invalid HTTP library " + getLibrary() + ". Only httr, httr2
AI-assisted analysis of OpenAPITools/openapi-generator@fcec517be3 (2026-08-22).
Data as JSON: /api/errors/d1ab8197df9626c7.
Report an issue: GitHub.