PyPI improves on checks for the reputation of an email address
when used to register an account or add to an existing account,
and rejects addresses identified as disposable.
With the new check in place,
outlook.com and hotmail.com addresses can once again be used on PyPI.
For about two weeks in August 2026,
some PyPI users hit intermittent 502 and 503 errors
downloading files from files.pythonhosted.org,
triggering failures during installation from PyPI.
Thanks to our users filing reports in the support tracker;
one report in particular narrowed the problem to a single cache node.
Two separate problems were uncovered.
A canary deployment inside Fastly's network
had triggered a misconfiguration at one cache node,
causing Fastly's routing layer to return 502 responses
for traffic reaching the affected cache node.
Separately, I found and fixed several bugs in our own Fastly configuration
around origin fallback and range request behavior.
Those had been there for a while,
and only surfaced while digging into these reports.
Both intermittent problems are now fixed,
and downloads are back to full function since August 28.
The counts are more accurate now,
and existing systems based on PyPI's BigQuery dataset,
like pypistats.org
will display a different shape going forward.
Working on infrastructure at the Python Software Foundation (PSF) as the Director of Engineering is a broad job with many hats. Python turns up everywhere. It's in healthcare systems and government agencies, in research labs and classrooms, in one-person side projects and in infrastructure at companies with six-figure headcounts. Somebody is using it to analyze a genome right now and somebody else is using it to automate a spreadsheet they hate arranging by hand. That range has always been the interesting part of the PSF's work, and it's only broadened in the last couple of years as AI continues to pull people from many disciplines into writing Python.
PyPI has adopted PEP 833, which "freezes" the
HTML representation of the index API, which is also
sometimes called the "simple API" or the "simple repository API."
New packages and releases will continue to appear in the HTML
representation, meaning this has no breaking implications
for downstream index consumers.
However, future standardization and development efforts will focus
on the JSON representation, and downstreams that consume only the HTML
representation are strongly encouraged to transition to the JSON
representation to ensure access to the latest and greatest index features.
The Python Package Index (PyPI) now rejects new files being uploaded to releases
that are older than 14 days. This restriction was put in place to prevent
old and long-stable releases from being poisoned in case publishing tokens or workflows
of PyPI projects were compromised. As far as we
are aware this has not yet been abused, but there is no technical reason
beyond that attackers weren't aware it was possible.
Over the next few months, we will be rolling out changes to the PyPI user interface, improving how we surface security signals and updating the pages where users view package details.
Updates will be staged to TestPyPI and deployed to production in phases. This approach allows our team to thoroughly test the UI with production-like data, while providing the community with an opportunity to share feedback.
The first phase of changes is now staged on TestPyPI and ready for users to review!
This work was funded by the Sovereign Tech Agency,
a supporter of Open Source security-related improvements,
partnering with Trail of Bits to perform the audit.
Thanks to ongoing support from Alpha-Omega,
my role at the PSF enabled me to focus on rapid remediation of the findings.
This time around, there's no three-part series, as the scope was narrower,
focused only on PyPI's codebase and behaviors.
Read on for a summary of issues identified, their resolutions,
and more details about the audit process.
This post will drill deeper into two recent supply chain exploits, targeting users of popular PyPI packages - litellm & telnyx.
We also provide Python developers and maintainers with guidance on what they can do to prepare
and protect themselves from future incidents.
Hello there! I am Maria, the inaugural PyPI Support Specialist.
I go by "Thespi-Brain" on GitHub.
I wanted to provide a dispatch of how this past year (and a half!)
has been regarding my role and PyPI. PyPI has now reached over a million users and has over 700,000 projects.
It is, without a doubt, a critical part of the Python ecosystem.
As the inaugural PyPI Support Specialist, there were numerous challenges that needed to be tackled regarding PyPI support,
such as the ever growing backlog of account recovery and PEP 541 issues.