The codes a default policy will repeat, and the complete list of them.
Everything absent from this set is terminal by default — AUTH, QUOTA,
INVALID_REQUEST, CONTEXT_WINDOW_EXCEEDED, INVALID_CREDENTIAL,
MISSING_CREDENTIAL, ABORTED, UNKNOWN and every HTTP_<status>. Two are
worth naming because the reasoning is not obvious:
EMPTY_RESPONSE IS retryable: the attempt produced nothing durable, so
repeating it cannot duplicate a side effect.
INVALID_CREDENTIAL is NOT: a malformed credential fails identically on
every attempt, and retrying only delays the operator's fix.
The codes a default policy will repeat, and the complete list of them.
Everything absent from this set is terminal by default —
AUTH,QUOTA,INVALID_REQUEST,CONTEXT_WINDOW_EXCEEDED,INVALID_CREDENTIAL,MISSING_CREDENTIAL,ABORTED,UNKNOWNand everyHTTP_<status>. Two are worth naming because the reasoning is not obvious:EMPTY_RESPONSEIS retryable: the attempt produced nothing durable, so repeating it cannot duplicate a side effect.INVALID_CREDENTIALis NOT: a malformed credential fails identically on every attempt, and retrying only delays the operator's fix.