{"record":{"id":"e5fae8747d007158","repo":"apache/maven","slug":"no-versions-matched-the-requested-parent-version-r","errorCode":null,"errorMessage":"No versions matched the requested parent version range '%s'","messagePattern":"No versions matched the requested parent version range '(.+?)'","errorType":"exception","errorClass":"UnresolvableModelException","httpStatus":null,"severity":"error","filePath":"compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java","lineNumber":182,"sourceCode":"        Path pomFile = pomArtifact.getPath();\n\n        return new FileModelSource(pomFile);\n    }\n\n    @Override\n    public ModelSource resolveModel(final Parent parent) throws UnresolvableModelException {\n        try {\n            final Artifact artifact =\n                    new DefaultArtifact(parent.getGroupId(), parent.getArtifactId(), \"\", \"pom\", parent.getVersion());\n\n            final VersionRangeRequest versionRangeRequest = new VersionRangeRequest(artifact, repositories, context);\n            versionRangeRequest.setTrace(trace);\n\n            final VersionRangeResult versionRangeResult =\n                    versionRangeResolver.resolveVersionRange(session, versionRangeRequest);\n\n            if (versionRangeResult.getHighestVersion() == null) {\n                throw new UnresolvableModelException(\n                        String.format(\n                                \"No versions matched the requested parent version range '%s'\", parent.getVersion()),\n                        parent.getGroupId(),\n                        parent.getArtifactId(),\n                        parent.getVersion());\n            }\n\n            if (versionRangeResult.getVersionConstraint() != null\n                    && versionRangeResult.getVersionConstraint().getRange() != null\n                    && versionRangeResult.getVersionConstraint().getRange().getUpperBound() == null) {\n                // Message below is checked for in the MNG-2199 core IT.\n                throw new UnresolvableModelException(\n                        String.format(\n                                \"The requested parent version range '%s' does not specify an upper bound\",\n                                parent.getVersion()),\n                        parent.getGroupId(),\n                        parent.getArtifactId(),\n                        parent.getVersion());","sourceCodeStart":164,"sourceCodeEnd":200,"githubUrl":"https://github.com/apache/maven/blob/e4093d4e120eac99d6bdce5ba67cace2f3085c97/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java#L164-L200","documentation":"DefaultModelResolver.resolveModel(Parent) expands a version range in <parent><version> via the version-range resolver. When no available version in the reachable repositories matches the range, highestVersion is null and it throws UnresolvableModelException carrying the parent GAV and the requested range.","triggerScenarios":"A POM whose <parent><version> is a range like [1.5,1.9) while no version in any reachable repository falls inside the range, or the parent was never deployed at all.","commonSituations":"Parent artifact not published to the configured repositories; range bounds typo'd so they exclude every existing version; offline or air-gapped builds missing range metadata; parent only available via a deactivated profile or repository.","solutions":["Check the range bounds against versions that actually exist (repository listing or mvn versions:display-parent-updates)","Fix or widen the range, or replace it with a concrete version like 1.8","Ensure the repository hosting the parent is declared in the build and reachable (check mirrors and auth)","If offline (-o), pre-warm the local repository with the parent's metadata and artifact"],"exampleFix":"<!-- before: range matches no published parent version -->\n<parent>\n  <groupId>com.example</groupId>\n  <artifactId>platform</artifactId>\n  <version>[2.0,2.5)</version> <!-- only 2.5+ exists -->\n</parent>\n\n<!-- after: use a version that exists (or fix the bounds) -->\n<parent>\n  <groupId>com.example</groupId>\n  <artifactId>platform</artifactId>\n  <version>2.6</version>\n</parent>","handlingStrategy":"try-catch","validationCode":"// Fail fast on malformed parent ranges before model building\ntry {\n    org.apache.maven.artifact.versioning.VersionRange.createFromVersionSpec(parent.getVersion());\n} catch (InvalidVersionSpecificationException e) {\n    throw new IllegalArgumentException(\"Malformed parent version range: \" + parent.getVersion(), e);\n}","typeGuard":null,"tryCatchPattern":"try {\n    ModelSource parentSource = modelResolver.resolveModel(parent);\n} catch (UnresolvableModelException e) {\n    // e carries groupId/artifactId/version of the parent: surface a targeted message\n    throw new BuildFailureException(\n        \"Parent \" + e.getGroupId() + \":\" + e.getArtifactId() + \":\" + e.getVersion()\n        + \" not found for range in <parent>; check bounds and repositories\", e);\n}","preventionTips":["Prefer concrete parent versions; ranges are only partially supported for parents","Verify the parent exists in reachable repositories before introducing a range","In offline CI, pre-warm the local repository with parent metadata"],"tags":["maven","parent-pom","version-range","resolution","unresolvable"],"backgroundTag":"version-range-resolution-failed","analyzedSha":"e4093d4e120eac99d6bdce5ba67cace2f3085c97","analyzedAt":"2026-08-21T22:58:24.034Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}