apache/maven · critical · IllegalStateException

The super POM {} is damaged, please verify the integrity of

Error message

The super POM {} is damaged, please verify the integrity of your Maven installation

What it means

The super POM classpath resource was found, but reading it threw an IOException while opening the stream or parsing. DefaultSuperPomProvider reports the installation as damaged. Almost always a corrupted or truncated maven-impl jar or Maven distribution.

Source

Thrown at impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultSuperPomProvider.java:74

    private Model readModel(String version, String v) {
        String resource = "/org/apache/maven/model/pom-" + v + ".xml";
        URL url = getClass().getResource(resource);
        if (url == null) {
            throw new IllegalStateException("The super POM " + resource + " was not found"
                    + ", please verify the integrity of your Maven installation");
        }
        try (InputStream is = url.openStream()) {
            String modelId =
                    "org.apache.maven:maven-api-impl:" + getImplementationVersion(getClass()) + ":super-pom-" + version;
            return modelProcessor.read(XmlReaderRequest.builder()
                    .modelId(modelId)
                    .location(url.toExternalForm())
                    .inputStream(is)
                    .strict(false)
                    .build());
        } catch (IOException e) {
            throw new IllegalStateException(
                    "The super POM " + resource + " is damaged"
                            + ", please verify the integrity of your Maven installation",
                    e);
        }
    }

    static String getImplementationVersion(Class<?> clazz) {
        Package packageInfo = clazz.getPackage();
        return packageInfo != null ? packageInfo.getImplementationVersion() : null;
    }
}

View on GitHub (pinned to e4093d4e12)

Solutions

  1. Re-download or reinstall the Maven distribution / maven-impl artifact
  2. Verify the jar integrity (checksum, jar tf) and replace it if entries cannot be read
  3. Clear and re-fetch any local-repository copy of maven-impl if it resolved from a remote repository
Defensive patterns

Strategy: try-catch

Try / catch

try {
    Model superPom = superPomProvider.getSuperPom(version);
} catch (IllegalStateException e) {
    // installation damaged: verify checksums, reinstall Maven / maven-impl, then restart
    log.error("Maven installation damaged: {}", e.getMessage());
}

Prevention

When it happens

Trigger: getSuperPom(version) where url.openStream() or the model read fails with IOException: truncated jar entry, disk corruption, or a repackaged jar with broken resource compression.

Common situations: Interrupted Maven download or update; disk or proxy corruption; jars processed by broken shading or repackaging tools.

Related errors


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