Python dependency resolution — ResolutionImpossible
Log signatures
Could not find a version that satisfies the requirement ResolutionImpossible The conflict is caused by: Requires-Python No matching distribution found
What’s happening
The resolver (pip, poetry, uv) cannot find a set of versions satisfying all constraints simultaneously. The most common real causes, in order: (1) Python version mismatch — Requires-Python in the log means a pinned package version doesn't support the CI Python version (typically after a CI image bump, or a package dropping an old Python); (2) two of your dependencies pin conflicting versions of a shared transitive dependency ("The conflict is caused by:" names them — read that block, it's the whole answer); (3) a yanked release — a version you pinned was withdrawn from PyPI and fresh resolves stop finding it while cached environments still work, which is why it "works on my machine."
Fix playbook
- 1Read the resolver's explanation block (The conflict is caused by: / ResolutionImpossible chain). Modern resolvers tell you the exact conflicting pair — believe them.
- 2Check the Python version first: does the CI Python match what your constraints assume? A silent image bump (3.11 → 3.13) breaks resolution with zero changes on your side.
- 3Relax or align the narrowest constraint involved in the conflict. Prefer widening your pin over forcing a transitive version.
- 4yanked: pick the nearest non-yanked release; it was usually yanked for a reason.
- 5Re-lock (pip-compile, poetry lock, uv lock) and rerun the exact install command from CI, with the same Python version.
Prevention
- Pin the Python version explicitly in CI (don't use a floating 3.x), and use a lockfile for applications. Resolution should happen at lock time, on a developer machine, never at deploy time.
Triage every red build, not just this one.
This page is one of 31 failure classes the open-source patchrail CLI matches from a raw log — locally, with secrets redacted first. If a log stumps it, open an issue; if it saves you a debugging morning, a star helps other maintainers find it.
pipx install patchrail