{"record":{"id":"02bae1bee74707eb","repo":"quarkusio/quarkus","slug":"failed-to-resolve-dependencies-for-artifact","errorCode":null,"errorMessage":"Failed to resolve dependencies for ${artifact}","messagePattern":"Failed to resolve dependencies for (.+?)","errorType":"exception","errorClass":"BootstrapMavenException","httpStatus":null,"severity":"error","filePath":"independent-projects/bootstrap/maven-resolver/src/main/java/io/quarkus/bootstrap/resolver/maven/ApplicationDependencyResolver.java","lineNumber":521,"sourceCode":"     */\n    private DependencyNode resolveRuntimeDeps(CollectRequest request)\n            throws AppModelResolverException {\n\n        var ctx = new BootstrapMavenContext(BootstrapMavenContext.config()\n                .setRepositorySystem(resolver.getSystem())\n                .setRepositorySystemSession(getSessionWithDirectDepsCollector())\n                .setRemoteRepositories(resolver.getRepositories())\n                .setRemoteRepositoryManager(resolver.getRemoteRepositoryManager())\n                .setCurrentProject(resolver.getMavenContext().getCurrentProject())\n                // no need to discover the workspace in case the current project isn't available\n                .setWorkspaceDiscovery(resolver.getMavenContext().getCurrentProject() != null));\n        resolver = new MavenArtifactResolver(ctx);\n\n        try {\n            return resolver.getSystem().collectDependencies(resolver.getSession(), request).getRoot();\n        } catch (DependencyCollectionException e) {\n            final Artifact a = request.getRoot() == null ? request.getRootArtifact() : request.getRoot().getArtifact();\n            throw new BootstrapMavenException(\"Failed to resolve dependencies for \" + a, e);\n        }\n    }\n\n    private DefaultRepositorySystemSession getSessionWithDirectDepsCollector() {\n        final RepositorySystemSession session = resolver.getSession();\n        final DefaultRepositorySystemSession mutableSession = new DefaultRepositorySystemSession(session);\n        mutableSession.setDependencySelector(\n                new DirectDependencyCollectorFactory(session.getDependencySelector(), dependencyMap));\n        return mutableSession;\n    }\n\n    private boolean isRuntimeArtifact(ArtifactKey key) {\n        final ResolvedDependencyBuilder dep = appBuilder.getDependency(key);\n        return dep != null && dep.isFlagSet(DependencyFlags.RUNTIME_CP);\n    }\n\n    private void processRuntimeDeps(DependencyNode root) {\n        final AppDep appRoot = new AppDep(root);","sourceCodeStart":503,"sourceCodeEnd":539,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/independent-projects/bootstrap/maven-resolver/src/main/java/io/quarkus/bootstrap/resolver/maven/ApplicationDependencyResolver.java#L503-L539","documentation":"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.","triggerScenarios":"resolveRuntimeDeps (called from root/ModelResolutionTaskRunner) when collectDependencies fails — unreachable remote repository, unresolvable dependency in the runtime graph, corrupt cached POM, or invalid dependency metadata.","commonSituations":"Corporate proxy/firewall blocking repo access; missing mirror configuration; a snapshot dependency whose remote metadata cannot be fetched; version range with no match.","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."],"exampleFix":"// before\nmvn quarkus:dev -Dquarkus.platform.version=999-nonexistent\n// after\nmvn quarkus:dev -Dquarkus.platform.version=3.15.0","handlingStrategy":"retry","validationCode":"// Check network access to configured repositories before resolving:\nfor (var repo : repos) {\n    var conn = new java.net.URL(repo.getUrl()).openConnection();\n    conn.setConnectTimeout(3000);\n    conn.connect(); // throws if unreachable\n}","typeGuard":"static boolean hasLocalCopy(MavenArtifactResolver mvn, org.eclipse.aether.artifact.Artifact a) {\n    return mvn.getSession().getLocalRepositoryManager()\n        .find(mvn.getSession(), new LocalArtifactRequest().setArtifact(a).setContext(\"\")).getFile() != null;\n}","tryCatchPattern":"try {\n    model = resolver.resolveModel(coords);\n} catch (BootstrapMavenException e) {\n    if (e.getMessage().startsWith(\"Failed to resolve dependencies for\")) {\n        // transient network errors are common: retry once with -U semantics\n        log.warn(\"Retrying dependency resolution after failure: \" + e.getMessage());\n    }\n    throw e;\n}","preventionTips":["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."],"tags":["maven","dependency-resolution","network","bootstrap"],"backgroundTag":"dependency-resolution-failed","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}