Closed
Description
Currently, the streaming pull manager is not aligned with proper API retry behavior.
It should retry on:
- Aborted
- Cancelled
- DeadlineExceeded
- GatewayTimeout
- InternalServerError
- ResourceExhausted
- ServiceUnavailable
- Unknown
And should terminate on:
- InvalidArgument
- NotFound
- PermissionDenied
- Unauthenticated
- Unauthorized
- Any non-API exception (Python is a dynamic language; TypeError, ValueError, generic exception, etc. shouldn't be retried)
Additionally, fatal error should immediately resolve the streaming pull future to the error state so that the caller is informed of the issue.
I will be submitting a fix for this.