OpenAPITools/openapi-generator · error · RuntimeException

Source generation is only compatible with .Net 7 or later.

Error message

Source generation is only compatible with .Net 7 or later.

What it means

Error "Source generation is only compatible with .Net 7 or later." thrown in OpenAPITools/openapi-generator.

Source

Thrown at modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java:962

                additionalProperties.put("apiDocPath", apiDocPath + File.separatorChar + "apis");
                additionalProperties.put("modelDocPath", modelDocPath + File.separatorChar + "models");
                break;
        }

        if (useDateOnly()) {
            setSupportsDateOnly(true);
            additionalProperties.put("supportsDateOnly", true);
        }
        // include the spec in the output
        supportingFiles.add(new SupportingFile("openapi.mustache", "api", "openapi.yaml"));

        this.setTypeMapping();
    }

    @Override
    public void setUseSourceGeneration(final Boolean useSourceGeneration) {
        if (useSourceGeneration && !this.additionalProperties.containsKey(NET_70_OR_LATER)) {
            throw new RuntimeException("Source generation is only compatible with .Net 7 or later.");
        }
        this.useSourceGeneration = useSourceGeneration;
    }

    @Override
    public CodegenOperation fromOperation(String path,
                                          String httpMethod,
                                          Operation operation,
                                          List<Server> servers) {
        CodegenOperation op = super.fromOperation(path, httpMethod, operation, servers);

        if (this.operationParameterSorting == SortingMethod.ALPHABETICAL) {
            Collections.sort(op.allParams, parameterComparatorByName);
            Collections.sort(op.bodyParams, parameterComparatorByName);
            Collections.sort(op.pathParams, parameterComparatorByName);
            Collections.sort(op.queryParams, parameterComparatorByName);
            Collections.sort(op.headerParams, parameterComparatorByName);
            Collections.sort(op.implicitHeadersParams, parameterComparatorByName);

View on GitHub (pinned to fcec517be3)

Solutions

  1. Target .NET 7 or later when using source generation, e.g. set targetFramework=net7.0 (or newer), or disable the source generation option.

When it happens

Trigger: Thrown when source generation is enabled for the C# client generator while targeting a .NET version older than .NET 7. Target net7.0 or later, or disable source generation.

Common situations: See trigger scenarios.


AI-assisted analysis of OpenAPITools/openapi-generator@fcec517be3 (2026-08-22). Data as JSON: /api/errors/1731f054a14e1a2d. Report an issue: GitHub.