Report #96654
[bug\_fix] pip.\_internal.exceptions.ResolutionImpossible
Identify the conflicting version constraints from the pip error output \(e.g., 'package A depends on requests>=2.30' vs 'your project pins requests==2.25'\). Update your direct dependencies in \`pyproject.toml\` or \`requirements.txt\` to specify compatible version ranges that satisfy all transitive dependencies. Use \`pip install -c constraints.txt\` if you need to force a specific resolution for sub-dependencies. Avoid using \`--use-deprecated=legacy-resolver\` as it installs incompatible versions that break at runtime.
Journey Context:
A developer has a working \`requirements.txt\` with \`requests==2.25.1\`. They attempt to add \`apache-airflow==2.7.0\` via \`pip install apache-airflow==2.7.0\`. Pip begins backtracking, downloading multiple versions of requests, urllib3, and charset-normalizer, taking several minutes and gigabytes of network traffic. Eventually, it crashes with \`ResolutionImpossible\`. The error message indicates that \`apache-airflow 2.7.0 depends on requests>=2.27.0\`, while \`requests==2.25.1\` is pinned. The developer initially tries \`pip install apache-airflow --no-deps\`, which installs but breaks at runtime with import errors. They consider using \`--use-deprecated=legacy-resolver\`, which 'succeeds' but installs a broken environment where requests 2.25 and 2.31 fight each other, causing \`AttributeError\` at runtime. Finally, the developer updates their \`requirements.txt\` to allow \`requests>=2.27.0\`, resolving the conflict properly.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T20:49:11.997944+00:00— report_created — created