quarkusio/quarkus · error · BootstrapMavenException
Failed to resolve dependencies for ${artifact}
Error message
Failed to resolve dependencies for ${artifact} What it means
resolveRuntimeDeps builds a dependency-collection request and asks the Maven Resolver for the runtime dependency graph. On DependencyCollectionException it throws BootstrapMavenException "Failed to resolve dependencies for <artifact>", naming whichever root artifact was requested.
Source
Thrown at independent-projects/bootstrap/maven-resolver/src/main/java/io/quarkus/bootstrap/resolver/maven/ApplicationDependencyResolver.java:521
*/
private DependencyNode resolveRuntimeDeps(CollectRequest request)
throws AppModelResolverException {
var ctx = new BootstrapMavenContext(BootstrapMavenContext.config()
.setRepositorySystem(resolver.getSystem())
.setRepositorySystemSession(getSessionWithDirectDepsCollector())
.setRemoteRepositories(resolver.getRepositories())
.setRemoteRepositoryManager(resolver.getRemoteRepositoryManager())
.setCurrentProject(resolver.getMavenContext().getCurrentProject())
// no need to discover the workspace in case the current project isn't available
.setWorkspaceDiscovery(resolver.getMavenContext().getCurrentProject() != null));
resolver = new MavenArtifactResolver(ctx);
try {
return resolver.getSystem().collectDependencies(resolver.getSession(), request).getRoot();
} catch (DependencyCollectionException e) {
final Artifact a = request.getRoot() == null ? request.getRootArtifact() : request.getRoot().getArtifact();
throw new BootstrapMavenException("Failed to resolve dependencies for " + a, e);
}
}
private DefaultRepositorySystemSession getSessionWithDirectDepsCollector() {
final RepositorySystemSession session = resolver.getSession();
final DefaultRepositorySystemSession mutableSession = new DefaultRepositorySystemSession(session);
mutableSession.setDependencySelector(
new DirectDependencyCollectorFactory(session.getDependencySelector(), dependencyMap));
return mutableSession;
}
private boolean isRuntimeArtifact(ArtifactKey key) {
final ResolvedDependencyBuilder dep = appBuilder.getDependency(key);
return dep != null && dep.isFlagSet(DependencyFlags.RUNTIME_CP);
}
private void processRuntimeDeps(DependencyNode root) {
final AppDep appRoot = new AppDep(root);View on GitHub (pinned to e1c734241f)
Solutions
- Check the wrapped cause for repository errors (connection refused, 401/404) and fix network/proxy/settings.xml.
- Verify the root artifact and its dependencies exist at the requested versions.
- Clear corrupted ~/.m2/repository entries for the failing artifacts and retry with `mvn -U`.
- If offline, ensure all runtime dependencies are already cached locally.
Example fix
// before mvn quarkus:dev -Dquarkus.platform.version=999-nonexistent // after mvn quarkus:dev -Dquarkus.platform.version=3.15.0
Defensive patterns
Strategy: retry
Validate before calling
// Check network access to configured repositories before resolving:
for (var repo : repos) {
var conn = new java.net.URL(repo.getUrl()).openConnection();
conn.setConnectTimeout(3000);
conn.connect(); // throws if unreachable
} Type guard
static boolean hasLocalCopy(MavenArtifactResolver mvn, org.eclipse.aether.artifact.Artifact a) {
return mvn.getSession().getLocalRepositoryManager()
.find(mvn.getSession(), new LocalArtifactRequest().setArtifact(a).setContext("")).getFile() != null;
} Try / catch
try {
model = resolver.resolveModel(coords);
} catch (BootstrapMavenException e) {
if (e.getMessage().startsWith("Failed to resolve dependencies for")) {
// transient network errors are common: retry once with -U semantics
log.warn("Retrying dependency resolution after failure: " + e.getMessage());
}
throw e;
} Prevention
- Configure mirrors/proxies correctly for corporate networks.
- Retry transient network failures with forced update (mvn -U).
- Warm the local cache in CI before running Quarkus tooling.
When it happens
Trigger: resolveRuntimeDeps (called from root/ModelResolutionTaskRunner) when collectDependencies fails — unreachable remote repository, unresolvable dependency in the runtime graph, corrupt cached POM, or invalid dependency metadata.
Common situations: Corporate proxy/firewall blocking repo access; missing mirror configuration; a snapshot dependency whose remote metadata cannot be fetched; version range with no match.
Related errors
- Failed to resolve application model <appArtifact> dependenci
- Failed to initialize Maven artifact resolver
- Failed to create the application model for
- Failed to inject extension deployment dependencies for ${app
- Failed to resolve ${a}
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/02bae1bee74707eb.
Report an issue: GitHub.