apache/maven · error · IllegalArgumentException
Unknown resolver transport '{}'. Supported transports are: w
Error message
Unknown resolver transport '{}'. Supported transports are: wagon, apache, jdk, auto What it means
IllegalArgumentException raised while configuring the Maven Resolver session: the maven.resolver.transport property (merged from user/system properties and settings) is not one of the supported names. Accepted values are wagon, apache, jdk, auto, plus the tolerated aliases 'native' (deprecated, warned) and 'default' (treated as auto); anything else aborts repository-session creation before any build.
Source
Thrown at impl/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java:335
// Make sure (whatever extra priority is set) that resolver file/jdk is selected
configProps.put(FILE_TRANSPORTER_PRIORITY_KEY, RESOLVER_MAX_PRIORITY);
configProps.put(JDK_HTTP_TRANSPORTER_PRIORITY_KEY, RESOLVER_MAX_PRIORITY);
} else if (MAVEN_RESOLVER_TRANSPORT_APACHE.equals(transport)
|| MAVEN_RESOLVER_TRANSPORT_NATIVE.equals(transport)) {
if (MAVEN_RESOLVER_TRANSPORT_NATIVE.equals(transport)) {
logger.warn(
"Transport name '{}' is DEPRECATED/RENAMED, use '{}' instead",
MAVEN_RESOLVER_TRANSPORT_NATIVE,
MAVEN_RESOLVER_TRANSPORT_APACHE);
}
// Make sure (whatever extra priority is set) that resolver file/apache is selected
configProps.put(FILE_TRANSPORTER_PRIORITY_KEY, RESOLVER_MAX_PRIORITY);
configProps.put(APACHE_HTTP_TRANSPORTER_PRIORITY_KEY, RESOLVER_MAX_PRIORITY);
} else if (MAVEN_RESOLVER_TRANSPORT_WAGON.equals(transport)) {
// Make sure (whatever extra priority is set) that wagon is selected
configProps.put(WAGON_TRANSPORTER_PRIORITY_KEY, RESOLVER_MAX_PRIORITY);
} else if (!MAVEN_RESOLVER_TRANSPORT_AUTO.equals(transport)) {
throw new IllegalArgumentException("Unknown resolver transport '" + transport
+ "'. Supported transports are: " + MAVEN_RESOLVER_TRANSPORT_WAGON + ", "
+ MAVEN_RESOLVER_TRANSPORT_APACHE + ", " + MAVEN_RESOLVER_TRANSPORT_JDK + ", "
+ MAVEN_RESOLVER_TRANSPORT_AUTO);
}
sessionBuilder.setIgnoreArtifactDescriptorRepositories(request.isIgnoreTransitiveRepositories());
sessionBuilder.setTransferListener(request.getTransferListener());
RepositoryListener repositoryListener = eventSpyDispatcher.chainListener(new LoggingRepositoryListener(logger));
boolean recordReverseTree = Boolean.parseBoolean(
mergedProps.getOrDefault(Constants.MAVEN_REPO_LOCAL_RECORD_REVERSE_TREE, Boolean.FALSE.toString()));
if (recordReverseTree) {
repositoryListener = new ChainedRepositoryListener(repositoryListener, new ReverseTreeRepositoryListener());
}
sessionBuilder.setRepositoryListener(repositoryListener);
View on GitHub (pinned to e4093d4e12)
Solutions
- Set a supported value: -Dmaven.resolver.transport=apache (or jdk, wagon, auto)
- Or remove the property entirely; the default behaves as auto
- Search .mvn/maven.config, ~/.m2/settings.xml, CI env and MAVEN_OPTS for the stale flag
Example fix
# before mvn -Dmaven.resolver.transport=apache-http install # after mvn -Dmaven.resolver.transport=apache install
Defensive patterns
Strategy: type-guard
Type guard
static boolean isSupportedTransport(String t) {
return t == null
|| Set.of("wagon", "apache", "jdk", "auto", "native", "default").contains(t);
} Prevention
- Whitelist the property value in wrapper scripts before launching Maven
- Document the four canonical names (wagon, apache, jdk, auto) wherever the flag is configured
- Audit .mvn/maven.config and CI templates when upgrading Maven majors
When it happens
Trigger: -Dmaven.resolver.transport=<bad> on the command line, in .mvn/maven.config, in MAVEN_OPTS, settings.xml, or CI environment variables with a typo like 'http', 'apache-http', or 'native-http'.
Common situations: Copy-pasted flags from outdated documentation or blog posts; CI pipelines carrying stale MAVEN_OPTS; scripts written for Maven/resolver versions where transport names differed.
Related errors
- Supplied URI is not relative
- Supplied relative URI escapes baseUrl
- source file does not exist or is not a file
- Remote repository URL invalid
- Unsupported remote repository
AI-assisted analysis of apache/maven@e4093d4e12 (2026-08-21).
Data as JSON: /api/errors/e9079bc01a5548a8.
Report an issue: GitHub.