My guess is what happens is:
1. tag is created
2. packages start to upload
3. some of them fail
4. I re-run
5. tag isn't created because it's already there, and the release script remembers that
6. packages upload
7. git tag isn't pushed because it thinks the tag was already created, and thus doesn't need to be pushed