Python 3.8 is not present on the latest runner images for ubuntu, as it is no longer actively maintained. Not only does this result in a need to pin to older runner images, but means the deployment workflow relies on a version of python which doesn't receive security updates anymore.
Unpinning to just use whatever python version is present on the runner image might be the cleanest solution here.