PyPI upload failed: "The description failed to render in the default format of reStructuredText"

Worked fine for an earlier build, but does not deploy all of a sudden.

PyPI upload failed.
failed to deploy

https://travis-ci.org/github/fbradyirl/openwrt-luci-rpc/builds/723055890

Diff: https://github.com/fbradyirl/openwrt-luci-rpc/compare/v1.1.5...v1.1.6

Bottom line: This is a change at PyPI. Follow the instructions at HTTPError: 400 Client Error: The description failed to render in the default format of reStructuredText · Issue #5890 · pypi/warehouse · GitHub

P.S. your artifacts weren’t uploaded, as can be seen at openwrt-luci-rpc · PyPI. So you can stop bumping versions, delete tags that failed to upload and recreate the first tag that failed after you fix the problem.


If you expand “Deploying application” or see the raw log, you’ll see Travis CI - Test and Deploy with Confidence

Uploading openwrt_luci_rpc-1.1.6-py2.py3-none-any.whl
100%|██████████| 16.1k/16.1k [00:00<00:00, 30.6kB/s]
NOTE: Try --verbose to see response content.
HTTPError: 400 Bad Request from upload.pypi.org · PyPI
The description failed to render in the default format of reStructuredText. See Help · PyPI for more information.

Googling this error message produces HTTPError: 400 Client Error: The description failed to render in the default format of reStructuredText · Issue #5890 · pypi/warehouse · GitHub
which confirms that this is a change at PyPI that strictens the description format check:

The cause is that in #5835 we merged a change which blocks uploads that have an invalid long_description that we won’t be able to render. This is intentional and not a bug.

(follows is the guilde on what to do)

Genius! Thanks so much for the pointer on this. I didn’t realise I could expand the deployment to see the actual error.

That’s why I usually look at the raw log to find suspicious stuff. You never know under which fold the info you need might be.

1 Like