PyPI Outage History
9 incidents recorded over the last 365 days, 8 of them resolved. Durations are measured from when PulsAPI first saw the problem to when it cleared, which is usually longer than the vendor's own figure.
Every Recorded PyPI Incident
| Date | Incident | Duration | Status |
|---|---|---|---|
| Oct 2, 2026 | PyPI Backends Partial Availabilitythe maintenance is complete and everything has stabilized | 16 min | Resolved |
| Oct 1, 2026 | Multiple services unavailableAll services are restored. | 5 min | Resolved |
| Sep 28, 2026 | Issues with search, logins and logged-in pagesThis incident has been resolved. | 12h 42m | Resolved |
| Sep 25, 2026 | Deprecated XML-RPC `browse()` method no longer worksThe scheduled maintenance has been completed. | 144h 0m | Scheduled |
| Sep 23, 2026 | Issues with search, logins and logged-in pagesA fix has been implemented and the incident is closed. | 6h 2m | Resolved |
| Feb 26, 2026 | Python Infrastructure OutageThe incident has been resolved. ## Incident Report: Cluster-wide service outage **Duration**: ~36 minutes \(20:04–20:40 UTC\) **Impact**: Some PSF-hosted services were unavailable, including… | 2h 46m | Resolved |
| Feb 19, 2026 | API Traffic experiencing intermittent failuresThis incident has been resolved. | 1h 12m | Resolved |
| Jan 7, 2026 | PyPI Uploads failingThis incident has been resolved. | 18 min | Resolved |
| Nov 12, 2025 | Slow updates to PyPI pages/API responsesThis incident has been resolved. | 39 min | Resolved |
Hear about the next one while it is open
Everything above is a record written after the fact. We can email you when the next PyPI incident opens instead, at the point where knowing still changes what you do.
Free, no password, no card. Unsubscribe in one click.
How to Read This PyPI Incident Log
Each row is an incident PulsAPI observed, not a summary written afterwards. The duration is wall-clock time between the first failing check and the first clean one, so it includes the window before PyPI acknowledged anything. Vendor post-mortems typically measure from acknowledgement, which is why their numbers are usually shorter.
Incidents still open have no duration yet and are listed as ongoing rather than being given a running total. The archive covers the last 365 days; anything older has aged out of the window rather than never having happened.
The longest single PyPI outage in this window ran 6d, against a mean recovery of 18h 40m. If you depend on PyPI in a customer-facing path, the longest figure is the one to design around. The mean is what happens on a normal bad day; the maximum is what happens on the worst one.