Resumable AAB uploads to the Play Store occasionally fail with httplib2.error.RedirectMissingLocation — the server returns a 3xx
redirect without a Location header during the large-file PUT. This is a
transient network/server error (seen in run 119).
num_retries=3 on .execute() only handles server errors (5xx); it
does not catch httplib2 transport-level exceptions. This PR adds an
explicit retry loop (up to 3 attempts, 10 s / 20 s backoff) around the bundles().upload() call specifically for this error class.
Each retry creates a fresh MediaFileUpload object so the resumable
upload session is reset cleanly.
Resumable AAB uploads to the Play Store occasionally fail with
`httplib2.error.RedirectMissingLocation` — the server returns a 3xx
redirect without a Location header during the large-file PUT. This is a
transient network/server error (seen in run 119).
`num_retries=3` on `.execute()` only handles server errors (5xx); it
does not catch `httplib2` transport-level exceptions. This PR adds an
explicit retry loop (up to 3 attempts, 10 s / 20 s backoff) around the
`bundles().upload()` call specifically for this error class.
Each retry creates a fresh `MediaFileUpload` object so the resumable
upload session is reset cleanly.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Resumable AAB uploads to the Play Store occasionally fail with
httplib2.error.RedirectMissingLocation— the server returns a 3xxredirect without a Location header during the large-file PUT. This is a
transient network/server error (seen in run 119).
num_retries=3on.execute()only handles server errors (5xx); itdoes not catch
httplib2transport-level exceptions. This PR adds anexplicit retry loop (up to 3 attempts, 10 s / 20 s backoff) around the
bundles().upload()call specifically for this error class.Each retry creates a fresh
MediaFileUploadobject so the resumableupload session is reset cleanly.