apache/maven · critical · IllegalStateException

The super POM {resource} was not found, please verify the in

Error message

The super POM {resource} was not found, please verify the integrity of your Maven installation

What it means

DefaultSuperPomProvider loads the built-in super POM for a model version from the classpath resource /org/apache/maven/model/pom-<version>.xml. If that resource is absent, every model build for that version fails immediately with IllegalStateException: the message points at a broken or incompatible Maven installation rather than at the user's POM.

Source

Thrown at compat/maven-model-builder/src/main/java/org/apache/maven/model/superpom/DefaultSuperPomProvider.java:65

    private Model superModel;

    @Inject
    private ModelProcessor modelProcessor;

    public DefaultSuperPomProvider setModelProcessor(ModelProcessor modelProcessor) {
        this.modelProcessor = modelProcessor;
        return this;
    }

    @Override
    public Model getSuperModel(String version) {
        if (superModel == null) {
            String resource = "/org/apache/maven/model/pom-" + version + ".xml";

            InputStream is = getClass().getResourceAsStream(resource);

            if (is == null) {
                throw new IllegalStateException("The super POM " + resource + " was not found"
                        + ", please verify the integrity of your Maven installation");
            }

            try {
                Map<String, Object> options = new HashMap<>();
                options.put("xml:4.0.0", "xml:4.0.0");

                String modelId =
                        "org.apache.maven:maven-model-builder:" + getImplementationVersion(getClass()) + ":super-pom";
                InputSource inputSource = new InputSource();
                inputSource.setModelId(modelId);
                inputSource.setLocation(getClass().getResource(resource).toExternalForm());
                options.put(ModelProcessor.INPUT_SOURCE, inputSource);

                superModel = modelProcessor.read(is, options);
            } catch (IOException e) {
                throw new IllegalStateException(
                        "The super POM " + resource + " is damaged"

View on GitHub (pinned to e4093d4e12)

Solutions

  1. Verify the resource exists: unzip -l maven-model-builder-*.jar | grep 'pom-'; if absent, reinstall Maven or replace the jar from Maven Central
  2. Fix the POM modelVersion to a supported value (e.g. 4.0.0)
  3. Ensure no dependency shading or relocation strips org/apache/maven/model resources
  4. Compare against a known-good installation of the same Maven version
Defensive patterns

Strategy: validation

Validate before calling

// Verify the super POM resource exists for this modelVersion before building
String resource = "/org/apache/maven/model/pom-" + modelVersion + ".xml";
if (DefaultSuperPomProvider.class.getResourceAsStream(resource) == null) {
    throw new IllegalStateException(
        "modelVersion " + modelVersion + " not supported by this maven-model-builder; "
        + "check installation integrity");
}

Prevention

When it happens

Trigger: getSuperModel(version) called with a modelVersion whose pom-<version>.xml is not shipped in the maven-model-builder jar (unsupported or typo'd modelVersion), or a jar that was corrupted, trimmed, or repackaged so the resource is missing.

Common situations: Corrupted or trimmed-down Maven distribution; a hand-crafted POM with a custom modelVersion; mixing a model-builder from one Maven line with model versions from another; shading/relocation dropping org/apache/maven/model resources.

Related errors


AI-assisted analysis of apache/maven@e4093d4e12 (2026-08-21). Data as JSON: /api/errors/ee7b7c217b622f0a. Report an issue: GitHub.