The Fix
@Lukasa this was definitely fixed in urllib3 as I was part of the discussion.
Based on closed psf/requests issue #239
Production note: Most teams hit this during upgrades or environment changes. Roll out with a canary and smoke critical endpoints (health, OpenAPI/docs) before 100%.
I tried using your paste and it works for about 50 requests in my 900 length list, until I start to get "max retries errors exceeded with url" for the rest. This is a pretty standard error though for hitting the same domain repeatedly though, no?
Hey, i was crawling a huge list of urls, 35k, and got this same error on _some_ of requests.
I am getting urls in chunks of 10, like this:
Re-run the minimal reproduction on your broken version, then apply the fix and re-run.
Option A — Apply the official fix\n@Lukasa this was definitely fixed in urllib3 as I was part of the discussion.\nWhen NOT to use: Do not use if it changes public behavior or if the failure cannot be reproduced.\n\nOption C — Workaround\n.\nWhen NOT to use: Do not use if it changes public behavior or if the failure cannot be reproduced.\n\n
Why This Fix Works in Production
- Trigger: ERROR: Internal Python error in the inspect module.
- Mechanism: @Lukasa this was definitely fixed in urllib3 as I was part of the discussion.
- If left unfixed, the same config can fail only in production (env differences), causing startup failures or partial feature outages.
Why This Breaks in Prod
- Shows up under Python 2.7 in real deployments (not just unit tests).
- Surfaces as: ERROR: Internal Python error in the inspect module.
Proof / Evidence
- GitHub issue: #239
- Reproduced locally: No (not executed)
- Last verified: 2026-02-04
- Confidence: 0.00
- Did this fix it?: No (no upstream fix linked)
- Own content ratio: 0.34
Discussion
High-signal excerpts from the issue thread (symptoms, repros, edge-cases).
“I ran into this on the first project I had where allow_redirects was True; it appears to be caused by the redirection chain leaking response…”
“Hmm, where is the chain of closing broken? We have a Response.close() method that calls release_conn(), so what needs to happen in release_conn() for this…”
“@Lukasa this was definitely fixed in urllib3 as I was part of the discussion. With an inclination towards being conservative in my estimate, I would…”
“Yeah, I did think this was fixed. Unless we see something on 1.2.3, I'm going to continue to assume this is fixed.”
Failure Signature (Search String)
- ERROR: Internal Python error in the inspect module.
Error Message
Stack trace
Error Message
-------------
ERROR: Internal Python error in the inspect module.
Below is the traceback from this internal error.
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/IPython/core/ultratb.py", line 756, in structured_traceback
File "/Library/Python/2.7/site-packages/IPython/core/ultratb.py", line 242, in _fixed_getinnerframes
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/inspect.py", line 1035, in getinnerframes
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/inspect.py", line 995, in getframeinfo
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/inspect.py", line 456, in getsourcefile
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/inspect.py", line 485, in getmodule
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/inspect.py", line 469, in getabsfile
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/posixpath.py", line 347, in abspath
OSError: [Errno 24] Too many open files
Unfortunately, your original traceback can not be constructed.
Minimal Reproduction
I tried using your paste and it works for about 50 requests in my 900 length list, until I start to get "max retries errors exceeded with url" for the rest. This is a pretty standard error though for hitting the same domain repeatedly though, no?
Hey, i was crawling a huge list of urls, 35k, and got this same error on _some_ of requests.
I am getting urls in chunks of 10, like this:
Environment
- Python: 2.7
Fix Options (Details)
Option A — Apply the official fix
@Lukasa this was definitely fixed in urllib3 as I was part of the discussion.
Option C — Workaround Temporary workaround
.
Use only if you cannot change versions today. Treat this as a stopgap and remove once upgraded.
Fix reference: https://github.com/psf/requests/issues/239
When NOT to Use This Fix
- Do not use if it changes public behavior or if the failure cannot be reproduced.
Verify Fix
Re-run the minimal reproduction on your broken version, then apply the fix and re-run.
Did This Fix Work in Your Case?
Quick signal helps us prioritize which fixes to verify and improve.
Prevention
- Capture the exact failing error string in logs and tests so you can reproduce via a minimal script.
- Pin production dependencies and upgrade only with a reproducible test that hits the failing path.
Related Issues
No related fixes found.
Sources
We don’t republish the full GitHub discussion text. Use the links above for context.