Report #14348
[bug\_fix] Pip dependency resolver backtracking hangs or ResolutionImpossible
Upgrade pip to latest \(\`pip install --upgrade pip\`\), add a constraints file to pin problematic transitive dependencies \(especially boto3/botocore or torch ecosystems\), or use \`pip install --no-deps\` followed by manual resolution for specific packages.
Journey Context:
Developer adds \`django>=4.2\` to requirements.txt which already pins \`requests==2.25.1\`. Running \`pip install -r requirements.txt\` causes pip to hang at "Resolving dependencies..." for 10\+ minutes with high CPU. They check pip version \(20.2, pre-resolver\). After upgrading to pip 23\+, instead of hanging, pip reports \`ResolutionImpossible\` citing that \`requests==2.25.1\` requires \`urllib3<1.27,>=1.21.1\` but \`django>=4.2\` requires \`urllib3>=2.0\`. The developer realizes the resolver is performing backtracking: it tries django 4.2, sees urllib3 conflict, tries django 4.1, still conflict, etc., potentially exploring hundreds of versions of transitive deps like botocore. The fix is to add a constraints file \`constraints.txt\` with \`urllib3==1.26.18\` and \`django>=4.2,<5.0\` to restrict the search space, allowing the resolver to find a compatible set quickly.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T21:18:50.596091+00:00— report_created — created