buildpacks-python
buildpacks-python copied to clipboard
Use retries/timeouts to improve reliabilty of downloads from S3
Currently the Python CNB makes a single download attempt for the Python runtime archive on S3.
We should add retries/timeouts to improve reliability in case there are network/S3 issues, similar to what the classic buildpack does.
Example failure:
[Installing Python]
Installing Python 3.12.7
[Error: Unable to download Python]
An error occurred whilst downloading the Python runtime archive.
In some cases, this happens due to an unstable network connection.
Please try again and to see if the error resolves itself.
Details: https://heroku-buildpack-python.s3.us-east-1.amazonaws.com/python-3.12.7-ubuntu-24.04-arm64.tar.zst: Dns Failed: resolve dns name 'heroku-buildpack-python.s3.us-east-1.amazonaws.com:443': failed to lookup address information: Try again
ERROR: failed to build: exit status 1
(From: https://github.com/heroku/cnb-builder-images/actions/runs/11281440483/job/31376753868#step:6:21)