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

  1. Set a supported value: -Dmaven.resolver.transport=apache (or jdk, wagon, auto)
  2. Or remove the property entirely; the default behaves as auto
  3. 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

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


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