fix(pubsub): retry all goaway errors (#4384)
The previous iteration of this PR, #4313, only retried GOAWAY in conjunction with an EOF string, which doesn't capture all GOAWAY errors. Now, all error messages with `GOAWAY` and error code `UNKNOWN` are retried.
Fixes #4257
diff --git a/pubsub/service.go b/pubsub/service.go
index 0c24be2..1a29df0 100644
--- a/pubsub/service.go
+++ b/pubsub/service.go
@@ -64,8 +64,7 @@
return 0, false
case codes.Unknown:
// Retry GOAWAY, see https://github.com/googleapis/google-cloud-go/issues/4257.
- isGoaway := strings.Contains(s.Message(), "error reading from server: EOF") &&
- strings.Contains(s.Message(), "received prior goaway")
+ isGoaway := strings.Contains(s.Message(), "received prior goaway: code: NO_ERROR")
if isGoaway {
return r.bo.Pause(), true
}