Report #7971
[bug\_fix] pip.\_vendor.resolvelib.resolvers.ResolutionTooDeep or ResolutionImpossible: conflicting dependencies
Pin dependencies to a working combination in \`requirements.txt\` or \`pyproject.toml\` to constrain the resolver search space, or use \`pip install --force-reinstall\` with specific versions. For development, use \`pip-tools\` or \`poetry\` to generate a lock file.
Journey Context:
Developer adds \`apache-airflow>=2.0\` and \`pandas>2.0\` to \`requirements.txt\`. Running \`pip install -r requirements.txt\` with pip 21\+ triggers the new strict resolver. The resolver enters deep backtracking, trying every historical version of \`apache-airflow\` to find one compatible with \`pandas>2.0\`, eventually hitting the default 1000000 backtrack limit and raising \`ResolutionTooDeep\`. Developer tries \`pip install --upgrade-strategy eager\`, which fails differently. Investigating \`pip install --verbose\` reveals the resolver stuck on \`google-auth\` sub-dependencies. Developer realizes that loose pins create a combinatorial explosion. The fix is to constrain the problematic top-level packages to specific known-compatible versions \(e.g., \`pandas==2.1.0\`\) or migrate to \`pip-compile\` to generate a lock file that pins the entire resolved tree, bypassing the resolver on subsequent installs.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T04:14:33.222771+00:00— report_created — created