{"id":"4a5d1bfa11547d48","repo":"python-poetry/poetry","slug":"package-name-version-not-found-4a5d1b","errorCode":null,"errorMessage":"Package {name} ({version}) not found.","messagePattern":"Package (.+?) \\((.+?)\\) not found\\.","errorType":"exception","errorClass":"PackageNotFoundError","httpStatus":null,"severity":"error","filePath":"src/poetry/repositories/repository_pool.py","lineNumber":166,"sourceCode":"        if not self.has_repository(name):\n            raise IndexError(\n                f\"RepositoryPool can not remove unknown repository '{name}'.\"\n            )\n        del self._repositories[name.lower()]\n        return self\n\n    def package(\n        self, name: str, version: Version, repository_name: str | None = None\n    ) -> Package:\n        if repository_name:\n            return self.repository(repository_name).package(name, version)\n\n        for repo in self.repositories:\n            try:\n                return repo.package(name, version)\n            except PackageNotFoundError:\n                continue\n        raise PackageNotFoundError(f\"Package {name} ({version}) not found.\")\n\n    def find_packages(self, dependency: Dependency) -> list[Package]:\n        repository_name = dependency.source_name\n        if repository_name:\n            return self.repository(repository_name).find_packages(dependency)\n\n        packages: list[Package] = []\n        for repo in self.repositories:\n            if packages and self.get_priority(repo.name) is Priority.SUPPLEMENTAL:\n                break\n            packages += repo.find_packages(dependency)\n        return packages\n\n    def search(self, query: str | list[str]) -> list[Package]:\n        results: list[Package] = []\n        for repo in self.repositories:\n            results += repo.search(query)\n        return results","sourceCodeStart":148,"sourceCodeEnd":184,"githubUrl":"https://github.com/python-poetry/poetry/blob/92b74dcfe348d0e01e14d40d6c1fa47a4ee04a54/src/poetry/repositories/repository_pool.py#L148-L184","documentation":"Raised by RepositoryPool.package after iterating every repository in the pool and finding none that contains the package at the requested version (repository_pool.py:155-166). Each repository's PackageNotFoundError is swallowed and re-raised as this aggregate miss. When repository_name is given, it delegates (and would instead raise error 90 if that source is unknown).","triggerScenarios":"pool.package(name, version) where no registered repository (including PyPI) has the package/version; or all repos raise PackageNotFoundError.","commonSituations":"Package/version genuinely absent from all configured sources; private source missing the release; wrong pool configuration (e.g. only a supplemental source configured).","solutions":["Confirm the package/version exists on at least one configured source.","Add the source that actually hosts the package.","Correct the name/version if it is a typo."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"from poetry.repositories.exceptions import PackageNotFoundError\ntry:\n    pkg = pool.package(name, version)\nexcept PackageNotFoundError:\n    log.error(\"%s %s not in any configured repository\", name, version)\n    raise","preventionTips":["Ensure at least one source hosting the package is in the pool.","Verify name/version against configured sources before resolving.","Add a fallback (e.g. PyPI) source so common packages resolve."],"tags":["repository-pool","package-not-found"],"analyzedSha":"92b74dcfe348d0e01e14d40d6c1fa47a4ee04a54","analyzedAt":"2026-08-04T20:33:34.072Z","schemaVersion":2}