quarkusio/quarkus · error · MojoExecutionException

Unable to render all config

Error message

Unable to render all config

What it means

The mojo wraps failures while rendering the combined 'all config' reference page into a MojoExecutionException with message 'Unable to render all config'. Any exception from generateAllConfig or the preceding file write is chained as the cause.

Source

Thrown at devtools/config-doc-maven-plugin/src/main/java/io/quarkus/maven/config/doc/GenerateConfigDocMojo.java:234

                    throw new MojoExecutionException(
                            "Unable to render config section for section: " + generatedConfigSection.getPath().property()
                                    + " in extension: " + extension,
                            e);
                }
            }
        }

        if (generateAllConfig) {
            // we generate the file centralizing all the config properties
            try {
                Path allConfigPath = resolvedTargetDirectory.resolve(String.format(ALL_CONFIG_FILE_FORMAT,
                        normalizedFormat.getExtension()));

                Context context = new Context("all-config", true);

                Files.writeString(allConfigPath, generateAllConfig(quteEngine, context, mergedModel.getConfigRoots()));
            } catch (Exception e) {
                throw new MojoExecutionException("Unable to render all config", e);
            }
        }
    }

    private static String generateConfigReference(Engine quteEngine, Context context, Extension extension,
            ConfigItemCollection configItemCollection, String additionalAnchorPrefix, boolean searchable) {
        return quteEngine.getTemplate("configReference")
                .data("extension", extension)
                .data("configItemCollection", configItemCollection)
                .data("searchable", searchable)
                .data("context", context)
                .data("summaryTableId", context.summaryTableId()) // for backward compatibility, use context instead
                .data("additionalAnchorPrefix", additionalAnchorPrefix)
                .data("includeDurationNote", configItemCollection.hasDurationType())
                .data("includeMemorySizeNote", configItemCollection.hasMemorySizeType())
                .render();
    }

View on GitHub (pinned to e1c734241f)

Solutions

  1. Look at the wrapped cause exception for the root error
  2. Verify the target directory exists and is writable by the build user
  3. Run with -X / debug logging to see which config root fails, then fix that extension's config metadata
Defensive patterns

Strategy: try-catch

Validate before calling

Files.createDirectories(Paths.get(targetDirectory));
assert Files.isWritable(Paths.get(targetDirectory));

Try / catch

try {
    mojo.execute();
} catch (MojoExecutionException e) {
    logger.error("All-config render failed: " + e.getMessage(), e.getCause());
}

Prevention

When it happens

Trigger: execute() writing the all-config document fails: Qute evaluation error on mergedModel.getConfigRoots(), disk full, or unwritable output path for the chosen format (asciidoc/markdown).

Common situations: Corrupt or conflicting merged model entries cause template evaluation errors; the docs output directory is read-only in CI; large models exhaust memory during rendering.

Related errors


AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05). Data as JSON: /api/errors/2968d0c87800f30c. Report an issue: GitHub.