Currently, the [streaming pull manager](https://github.com/googleapis/python-pubsub/blob/main/google/cloud/pubsub_v1/subscriber/_protocol/streaming_pull_manager.py#L64-L72) 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.