{"record":{"id":"b07e6fa66116acb8","repo":"quarkusio/quarkus","slug":"failed-to-initialize-maven-model-resolver","errorCode":null,"errorMessage":"Failed to initialize Maven model resolver","messagePattern":"Failed to initialize Maven model resolver","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"independent-projects/bootstrap/maven-resolver/src/main/java/io/quarkus/bootstrap/resolver/maven/DefaultEffectiveModelResolver.java","lineNumber":41,"sourceCode":"\nimport io.quarkus.bootstrap.resolver.maven.workspace.LocalProject;\nimport io.quarkus.bootstrap.resolver.maven.workspace.LocalWorkspace;\nimport io.quarkus.bootstrap.resolver.maven.workspace.ModelUtils;\nimport io.quarkus.maven.dependency.ArtifactCoords;\n\nclass DefaultEffectiveModelResolver implements EffectiveModelResolver {\n\n    private final MavenArtifactResolver resolver;\n    private final ModelBuilder modelBuilder;\n    private final ModelCache modelCache;\n    private final Map<ArtifactCoords, Model> effectiveModels = new HashMap<>();\n\n    DefaultEffectiveModelResolver(MavenArtifactResolver resolver) {\n        this.resolver = resolver;\n        try {\n            modelCache = new BootstrapModelCache(resolver.getMavenContext().getRepositorySystemSession());\n        } catch (BootstrapMavenException e) {\n            throw new RuntimeException(\"Failed to initialize Maven model resolver\", e);\n        }\n        modelBuilder = BootstrapModelBuilderFactory.getDefaultModelBuilder();\n    }\n\n    public Model resolveEffectiveModel(ArtifactCoords coords) {\n        return resolveEffectiveModel(coords, List.of());\n    }\n\n    public Model resolveEffectiveModel(ArtifactCoords coords, List<RemoteRepository> repos) {\n\n        if (!ArtifactCoords.TYPE_POM.equals(coords.getType())) {\n            coords = ArtifactCoords.pom(coords.getGroupId(), coords.getArtifactId(), coords.getVersion());\n        }\n\n        var cached = effectiveModels.get(coords);\n        if (cached != null) {\n            return cached;\n        }","sourceCodeStart":23,"sourceCodeEnd":59,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/independent-projects/bootstrap/maven-resolver/src/main/java/io/quarkus/bootstrap/resolver/maven/DefaultEffectiveModelResolver.java#L23-L59","documentation":"DefaultEffectiveModelResolver wraps a Maven resolver to build effective (interpolated, parent-merged) POM models. This RuntimeException is thrown in the constructor when creating the BootstrapModelCache from the repository system session fails with a BootstrapMavenException, meaning the resolver cannot even be constructed.","triggerScenarios":"Calling new DefaultEffectiveModelResolver(resolver) where resolver.getMavenContext().getRepositorySystemSession() is misconfigured or BootstrapModelCache construction throws BootstrapMavenException (e.g. invalid Maven context/session setup).","commonSituations":"Broken ~/.m2/settings.xml (malformed XML, unresolvable mirrors), invalid localRepository path, or a MavenArtifactResolver built with bad configuration passed into application/model resolution APIs.","solutions":["Fix errors in ~/.m2/.mvn/settings.xml (validate XML, repository and mirror definitions)","Verify the local Maven repository path is writable and valid","Run with -X / enable Maven debugging to see the underlying BootstrapMavenException cause","Rebuild the MavenArtifactResolver with a known-good MavenContext before constructing this class"],"exampleFix":"// before\nDefaultEffectiveModelResolver r = new DefaultEffectiveModelResolver(badResolver);\n// after\nMavenArtifactResolver resolver = new MavenArtifactResolver(new MavenContextBuilder()\n    .setLocalRepository(Paths.get(\"~/.m2/repository\").toAbsolutePath())\n    .setSettings(Paths.get(\"~/.m2/settings.xml\")).build());\nDefaultEffectiveModelResolver r = new DefaultEffectiveModelResolver(resolver);","handlingStrategy":"try-catch","validationCode":"// validate settings before creating resolver\nPath settings = Paths.get(System.getProperty(\"user.home\"), \".m2\", \"settings.xml\");\nif (java.nio.file.Files.exists(settings)) {\n    try { javax.xml.XMLConstants.class.getName(); new javax.xml.parsers.DocumentBuilderFactory().newDocumentBuilder().parse(settings.toFile()); }\n    catch (Exception e) { throw new IllegalStateException(\"Invalid settings.xml\", e); }\n}","typeGuard":null,"tryCatchPattern":"try {\n    DefaultEffectiveModelResolver r = new DefaultEffectiveModelResolver(resolver);\n} catch (RuntimeException e) {\n    logger.error(\"Model resolver init failed; check settings.xml/local repo\", e);\n    throw new IllegalStateException(\"Invalid Maven configuration: \" + e.getCause(), e);\n}","preventionTips":["Validate ~/.m2/settings.xml parses before builds","Ensure the local repository path exists and is writable","Keep Maven resolver versions aligned with Quarkus bootstrap expectations"],"tags":["maven","bootstrap","initialization"],"backgroundTag":"maven-resolver-init-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"}