Report #92879
[bug\_fix] pip dependency resolver backtracking indefinitely or failing with 'ResolutionImpossible'
Specify compatible version constraints in your requirements to reduce the search space, or use a lock-file tool like 'pip-tools' or 'poetry' to resolve dependencies offline. If two packages have mutually exclusive requirements \(e.g., package A requires requests<2.25, package B requires requests>=2.26\), you must upgrade/downgrade one package to a version with compatible requirements. As a temporary workaround on older pip versions \(20.3-21.0\), you could use '--use-deprecated=legacy-resolver', but this risks installing incompatible packages.
Journey Context:
Your CI pipeline suddenly starts timing out during 'pip install -r requirements.txt' after a team member adds a new package. Locally, you run pip install and see it spinning for minutes collecting different versions of 'urllib3' and 'chardet'. Eventually it fails with 'ResolutionImpossible: The conflict is caused by package-a requiring urllib3<1.25 while package-b requires urllib3>=1.26'. You check your requirements.txt and see you pinned 'package-a==1.0.0' and 'package-b==2.0.0'. You look up the changelogs and find that 'package-a==1.1.0' supports newer urllib3. You update the pin, and pip resolves instantly. You realize the new strict resolver \(pip 20.3\+\) prevents the 'pip install' from succeeding with incompatible packages, whereas the old resolver would have installed broken packages.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T14:28:59.980817+00:00— report_created — created