Retry INTERNAL errors on more request types ?
Hi,
We're getting transient INTERNAL errors when calling createTopic or createSubscription:
Error: 13 INTERNAL: A service error has occurred. Please retry your request. If the error persists, please report it. [code=e8c0]
at callErrorFromStatus (/usr/src/app/node_modules/@grpc/grpc-js/build/src/call.js:31:19)
at Object.onReceiveStatus (/usr/src/app/node_modules/@grpc/grpc-js/build/src/client.js:192:76)
at Object.onReceiveStatus (/usr/src/app/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:360:141)
at Object.onReceiveStatus (/usr/src/app/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:323:181)
at /usr/src/app/node_modules/@grpc/grpc-js/build/src/resolving-call.js:94:78
at process.processTicksAndRejections (node:internal/process/task_queues:77:11)
for call at
at ServiceClientImpl.makeUnaryRequest (/usr/src/app/node_modules/@grpc/grpc-js/build/src/client.js:160:34)
at ServiceClientImpl.<anonymous> (/usr/src/app/node_modules/@grpc/grpc-js/build/src/make-client.js:105:19)
at /usr/src/app/node_modules/@google-cloud/pubsub/build/src/v1/subscriber_client.js:227:29
at /usr/src/app/node_modules/google-gax/build/src/normalCalls/timeout.js:44:16
at repeat (/usr/src/app/node_modules/google-gax/build/src/normalCalls/retries.js:80:25)
at /usr/src/app/node_modules/google-gax/build/src/normalCalls/retries.js:118:13
at OngoingCall.call (/usr/src/app/node_modules/google-gax/build/src/call.js:67:27)
at NormalApiCaller.call (/usr/src/app/node_modules/google-gax/build/src/normalCalls/normalApiCaller.js:34:19)
at /usr/src/app/node_modules/google-gax/build/src/createApiCall.js:84:30
According to the docs, these errors can be retried.
However, the nodejs client doesn't retry them, see https://github.com/googleapis/nodejs-pubsub/blob/main/src/v1/subscriber_client_config.json#L46 for example.
Should this be changed, at least for idempotent requests?
We were just talking about this last week. @kamalaboulhosn This might fit into that discussion.
Ping @kamalaboulhosn, not sure what the state of the INTERNAL retries is.
We're reassessing the errors for auto-retry now, will consider this as part of that.