uv "No solution found when resolving dependencies" in CI
uv’s resolver could not find a set of versions satisfying every requirement, much like pip’s ResolutionImpossible or Poetry’s solver error. It prints the conflicting constraints or the unsatisfiable Python requirement.
What this error means
uv pip install/uv lock/uv sync fails with × No solution found when resolving dependencies, followed by a "because ... and ..." explanation of the conflict. It is deterministic and reproduces from the same inputs.
× No solution found when resolving dependencies:
╰─▶ Because only flask<2.1 is available and your project depends on
flask>=3, we can conclude that your requirements are unsatisfiable.Common causes
Conflicting version constraints
Two requirements demand non-overlapping versions of a shared package, so no single resolution exists - uv reports the contradiction.
requires-python excludes a needed release
Your requires-python (or --python target) does not overlap a dependency’s supported Python, leaving the resolver no candidate.
How to fix it
Read the "because" chain and relax a constraint
- The explanation names the two conflicting constraints - loosen your own pin so the ranges overlap.
- Or upgrade the lagging dependency that caps the shared package.
- Re-run
uv lockto confirm a solution exists.
Align the target Python version
Resolve against a Python every dependency supports.
uv lock --python 3.11
# or set requires-python in pyproject.toml
# [project] requires-python = ">=3.10,<3.13"Inspect the resolution verbosely
uv pip install -r requirements.txt --verboseHow to prevent it
- Pin with ranges, not hard
==, unless required. - Keep
requires-pythonaligned with your dependencies’ support. - Commit the
uv.lockso resolution runs once, not per CI job.