apache/maven · warning
Ignoring incompatible plugin version {}: {}
Error message
Ignoring incompatible plugin version {}: {} What it means
Non-debug form of the incompatible-candidate warning (line 364): only e.getMessage() is printed instead of a stack trace. DefaultPluginVersionResolver.isCompatible caught PluginIncompatibleException from pluginManager.checkPrerequisites for candidate 'version' and returns false so version selection continues with the next-older candidate. The message names the version skipped and the reason (typically the required-vs-current Maven version mismatch).
Source
Thrown at impl/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java:364
try {
pluginDescriptor = pluginManager.getPluginDescriptor(
plugin, request.getRepositories(), request.getRepositorySession());
} catch (PluginResolutionException e) {
logger.debug("Ignoring unresolvable plugin version {}", version, e);
return false;
} catch (Exception e) {
// ignore for now and delay failure to higher level processing
return true;
}
try {
pluginManager.checkPrerequisites(pluginDescriptor);
} catch (PluginIncompatibleException e) {
if (logger.isDebugEnabled()) {
logger.warn("Ignoring incompatible plugin version {}:", version, e);
} else {
logger.warn("Ignoring incompatible plugin version {}: {}", version, e.getMessage());
}
return false;
}
return true;
}
private void mergeMetadata(
RepositorySystemSession session,
RequestTrace trace,
Versions versions,
org.eclipse.aether.metadata.Metadata metadata,
ArtifactRepository repository) {
if (metadata != null && metadata.getFile() != null && metadata.getFile().isFile()) {
try {
Map<String, ?> options = Collections.singletonMap(MetadataReader.IS_STRICT, Boolean.FALSE);
Metadata repoMetadata = metadataReader.read(metadata.getFile(), options);View on GitHub (pinned to e4093d4e12)
Solutions
- If a version was subsequently selected, silence the noise by pinning that selected version explicitly in the POM
- If resolution failed after these skips, either pin an older compatible version or upgrade Maven to the prerequisite shown in the message
- Run once with -X to see the stack-trace variant with the exact required Maven version
Example fix
# before: resolver probes and skips incompatible candidates every build mvn org.apache.maven.plugins:maven-clean-plugin:clean # after: pin compatible version on the CLI to skip the search mvn org.apache.maven.plugins:maven-clean-plugin:3.3.2:clean
Defensive patterns
Strategy: fallback
Validate before calling
# preflight: find the newest plugin release whose prerequisite your Maven satisfies mvn -V # print running Maven version mvn versions:display-plugin-updates # compare available lines against it
Prevention
- Pin explicit versions so the resolver never walks incompatible candidates
- Watch plugin release notes for raised Maven prerequisites before bumping versions in pluginManagement
When it happens
Trigger: Default-log-level build invoking an unversioned plugin whose newer releases declare higher Maven prerequisites; each skipped release logs one 'Ignoring incompatible plugin version X: <reason>' line while the resolver descends the version list.
Common situations: CI logs showing several of these lines followed by a successful 'Selected plugin' message (harmless churn); or followed by the fatal resolution error when no candidate is compatible - then these lines are the audit trail of why.
Related errors
- Ignoring incompatible plugin version {}:
- The consumer POM for %s cannot be downgraded to model versio
- Required Maven version {} is not met by current version {}
- Could not verify plugin's Maven prerequisite as an invalid v
- Could not find compatible version of plugin {}:{} in any plu
AI-assisted analysis of apache/maven@e4093d4e12 (2026-08-21).
Data as JSON: /api/errors/30c91994d81334e5.
Report an issue: GitHub.