chore: improve metadata service error handling #1902
+24
−14
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Improved error handling in
google/auth/compute_engine/_metadata.pyto provide more informative error messages when retries are exhausted.The logic now handles two distinct failure modes:
Connection Errors (Exceptions):
last_exception.last_exceptionis set, aTransportErroris raised that chains the original exception. This preserves the stack trace and specific error type for debugging.Retryable HTTP Status Codes:
last_exceptionis cleared (set toNone).TransportErroris raised that includes theresponse.statusand the response body (error_details). This ensures the specific server error message is visible.This addresses feedback from PR 1637 by ensuring that "Ran out of retries" scenarios provide the most relevant context: either the underlying exception or the final HTTP error response.
PR created automatically by Jules for task 6226991344715693997 started by @chalmerlowe