{"record":{"id":"85ef12c36d856e2f","repo":"apache/maven","slug":"unable-to-create-repository","errorCode":null,"errorMessage":"Unable to create repository","messagePattern":"Unable to create repository","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSession.java","lineNumber":236,"sourceCode":"    }\n\n    @Override\n    public ArtifactRepository toArtifactRepository(RemoteRepository repository) {\n        if (repository instanceof DefaultRemoteRepository defaultRemoteRepository) {\n            org.eclipse.aether.repository.RemoteRepository rr = defaultRemoteRepository.getRepository();\n\n            try {\n                return mavenRepositorySystem.createRepository(\n                        rr.getUrl(),\n                        rr.getId(),\n                        rr.getPolicy(false).isEnabled(),\n                        rr.getPolicy(false).getUpdatePolicy(),\n                        rr.getPolicy(true).isEnabled(),\n                        rr.getPolicy(true).getUpdatePolicy(),\n                        rr.getPolicy(false).getChecksumPolicy());\n\n            } catch (Exception e) {\n                throw new RuntimeException(\"Unable to create repository\", e);\n            }\n        } else {\n            // TODO\n            throw new UnsupportedOperationException(\"Not yet implemented\");\n        }\n    }\n}\n","sourceCodeStart":218,"sourceCodeEnd":244,"githubUrl":"https://github.com/apache/maven/blob/e4093d4e120eac99d6bdce5ba67cace2f3085c97/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSession.java#L218-L244","documentation":"RuntimeException from DefaultSession.toArtifactRepository: converting an API RemoteRepository to the legacy ArtifactRepository via mavenRepositorySystem.createRepository(url, id, releasesEnabled, releasesPolicy, snapshotsEnabled, snapshotsPolicy, checksumPolicy) threw. Failures such as a malformed URL that cannot be turned into a repository are wrapped with this generic message. Note the sibling branch: a repository that is not a DefaultRemoteRepository hits UnsupportedOperationException('Not yet implemented') instead.","triggerScenarios":"Session.toArtifactRepository / toArtifactRepositories on a DefaultRemoteRepository whose URL cannot be interpreted by MavenRepositorySystem.createRepository — missing scheme, typo like 'http//host', or illegal characters — or whose policy values are invalid.","commonSituations":"Malformed <url> entries in a pom's <repositories> or <distributionManagement>, in settings.xml mirrors or profiles; copy-paste errors dropping '://'; migrating http URLs truncated by tooling.","solutions":["Fix the repository URL to a full URI with scheme: https://host/path","Find the offending entry: mvn help:effective-pom / help:effective-settings and grep the printed repository URLs","If a custom RemoteRepository implementation triggers the 'Not yet implemented' branch, pass repositories obtained from the session instead of hand-built ones"],"exampleFix":"<!-- before -->\n<repository>\n  <id>corp</id>\n  <url>http//repo.corp/maven</url>\n</repository>\n\n<!-- after -->\n<repository>\n  <id>corp</id>\n  <url>https://repo.corp/maven</url>\n</repository>","handlingStrategy":"validation","validationCode":"// Validate every repository URL before it reaches the session\nfor (RemoteRepository rr : repositories) {\n    try {\n        URI uri = URI.create(rr.getUrl());\n        if (uri.getScheme() == null || uri.getHost() == null) throw new IllegalArgumentException(rr.getUrl());\n    } catch (IllegalArgumentException bad) {\n        throw new IllegalStateException(\"Repository '\" + rr.getId() + \"' has invalid URL: \" + rr.getUrl(), bad);\n    }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Lint pom/settings URLs in CI (mvn help:effective-pom plus a URL check)","Always include the scheme (https://) in repository and mirror URLs","Reject hand-built RemoteRepository instances in favor of session-derived ones"],"tags":["maven","repository-url","settings-xml","pom","maven-api"],"backgroundTag":"invalid-repository-url","analyzedSha":"e4093d4e120eac99d6bdce5ba67cace2f3085c97","analyzedAt":"2026-08-21T22:58:24.034Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}