Hi team,
We are hitting a token access issue suddenly.
calling google ads hit this exception since UTC 2022-02-10.
Does anyone know how to resolve it?
[GetCustomers] ExternalServiceHelper.CallWithRetryAsync retry:0, <GetCustomerResult>b__0, Errors:["{\"Code\":\"UnknownError\",\"Property\":\"GetCustomers\",\"Message\":\"Grpc.Core.RpcException: Status(StatusCode=\\\"Internal\\\", Detail=\\\"Error starting gRPC call. TokenResponseException: Error:\\\"invalid_grant\\\", Description:\\\"Bad Request\\\", Uri:\\\"\\\"\\\", DebugException=\\\"Google.Apis.Auth.OAuth2.Responses.TokenResponseException: Error:\\\"invalid_grant\\\", Description:\\\"Bad Request\\\", Uri:\\\"\\\"\\n
at Google.Apis.Auth.OAuth2.Responses.TokenResponse.FromHttpResponseAsync(HttpResponseMessage response, IClock clock, ILogger logger)\\n
at Google.Apis.Auth.OAuth2.Requests.TokenRequestExtenstions.ExecuteAsync(TokenRequest request, HttpClient httpClient, String tokenServerUrl, CancellationToken taskCancellationToken, IClock clock, ILogger logger)\\n
at Google.Apis.Auth.OAuth2.Flows.AuthorizationCodeFlow.FetchTokenAsync(String userId, TokenRequest request, CancellationToken taskCancellationToken)\\n
at Google.Apis.Auth.OAuth2.Flows.AuthorizationCodeFlow.FetchTokenAsync(String userId, TokenRequest request, CancellationToken taskCancellationToken)\\n
at Google.Apis.Auth.OAuth2.Flows.AuthorizationCodeFlow.RefreshTokenAsync(String userId, String refreshToken, CancellationToken taskCancellationToken)\\n
at Google.Apis.Auth.OAuth2.UserCredential.RefreshTokenAsync(CancellationToken taskCancellationToken)\\n
at Google.Apis.Auth.OAuth2.TokenRefreshManager.RefreshTokenAsync()\\n
at Google.Apis.Auth.OAuth2.TokenRefreshManager.GetAccessTokenForRequestAsync(CancellationToken cancellationToken)\\n
at Google.Apis.Auth.OAuth2.TokenRefreshManager.<GetAccessTokenForRequestAsync>g__LogException|10_0(Task task)\\n
at Google.Apis.Auth.OAuth2.UserCredential.GetAccessTokenWithHeadersForRequestAsync(String authUri, CancellationToken cancellationToken)\\n
at Grpc.Auth.GoogleAuthInterceptors.<>c__DisplayClass3_0.<<FromCredential>b__0>d.MoveNext()\\n
--- End of stack trace from previous location ---\\n
at Grpc.Net.Client.Internal.GrpcProtocolHelpers.ReadCredentialMetadata(DefaultCallCredentialsConfigurator configurator, GrpcChannel channel, HttpRequestMessage message, IMethod method, CallCredentials credentials)\\n
at Grpc.Net.Client.Internal.GrpcCall`2.ReadCredentials(HttpRequestMessage request)\\n
at Grpc.Net.Client.Internal.GrpcCall`2.RunCall(HttpRequestMessage request, Nullable`1 timeout)\\\")\\n
at Google.Ads.Gax.Interceptors.UnaryRpcInterceptor.Intercept[T,TResponse](Task`1 task, Action`1 callback)\\n
at Grpc.Net.Client.Internal.GrpcCall`2.GetResponseHeadersCoreAsync()\\n
at Google.Ads.Gax.Interceptors.UnaryRpcInterceptor.Intercept[T,TResponse](Task`1 task, Action`1 callback)\\n
at Google.Api.Gax.Grpc.ApiCall.GrpcCallAdapter`2.<>c__DisplayClass4_0.<<CallAsync>g__WaitAndCallHandlers|0>d.MoveNext()\\n
--- End of stack trace from previous location ---\\n
at Google.Api.Gax.Grpc.ApiCallRetryExtensions.<>c__DisplayClass0_0`2.<<WithRetry>b__0>d.MoveNext()\\n
--- End of stack trace from previous location ---\\n
at Google.Api.Gax.Grpc.ResponseAsyncEnumerable`3.ResponseAsyncEnumerator.MoveNextAsync()\\n
at Microsoft.Ads.Mca.Implementation.AdsSync.Helper.GoogleSyncHelper.<>c__DisplayClass6_0.<<GetCustomerResult>b__0>d.MoveNext()\\n
--- End of stack trace from previous location ---\\n
at Microsoft.Ads.Mca.Implementation.AdsSync.Helper.GoogleSyncHelper.<>c__DisplayClass6_0.<<GetCustomerResult>b__0>d.MoveNext()\\n
--- End of stack trace from previous location ---\\n
at Microsoft.Ads.Mca.Common.Client.Common.ExternalServiceHelper.CallWithRetryAsync[T,V](Func`1 func, IExternalServiceExceptionHandler exceptionHandler, ILogShared logger, String property, ValueTuple`2 retryPolicy, V argumentsTuple)\"}"], Raw Exception Grpc.Core.RpcException : Grpc.Core.RpcException: Status(StatusCode="Internal", Detail="Error starting gRPC call. TokenResponseException: Error:"invalid_grant", Description:"Bad Request", Uri:""", DebugException="Google.Apis.Auth.OAuth2.Responses.TokenResponseException: Error:"invalid_grant", Description:"Bad Request", Uri:""
at Google.Apis.Auth.OAuth2.Responses.TokenResponse.FromHttpResponseAsync(HttpResponseMessage response, IClock clock, ILogger logger)
at Google.Apis.Auth.OAuth2.Requests.TokenRequestExtenstions.ExecuteAsync(TokenRequest request, HttpClient httpClient, String tokenServerUrl, CancellationToken taskCancellationToken, IClock clock, ILogger logger)
at Google.Apis.Auth.OAuth2.Flows.AuthorizationCodeFlow.FetchTokenAsync(String userId, TokenRequest request, CancellationToken taskCancellationToken)
at Google.Apis.Auth.OAuth2.Flows.AuthorizationCodeFlow.FetchTokenAsync(String userId, TokenRequest request, CancellationToken taskCancellationToken)
at Google.Apis.Auth.OAuth2.Flows.AuthorizationCodeFlow.RefreshTokenAsync(String userId, String refreshToken, CancellationToken taskCancellationToken)
at Google.Apis.Auth.OAuth2.UserCredential.RefreshTokenAsync(CancellationToken taskCancellationToken)
at Google.Apis.Auth.OAuth2.TokenRefreshManager.RefreshTokenAsync()
at Google.Apis.Auth.OAuth2.TokenRefreshManager.GetAccessTokenForRequestAsync(CancellationToken cancellationToken)
at Google.Apis.Auth.OAuth2.TokenRefreshManager.<GetAccessTokenForRequestAsync>g__LogException|10_0(Task task)
at Google.Apis.Auth.OAuth2.UserCredential.GetAccessTokenWithHeadersForRequestAsync(String authUri, CancellationToken cancellationToken)
at Grpc.Auth.GoogleAuthInterceptors.<>c__DisplayClass3_0.<<FromCredential>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Grpc.Net.Client.Internal.GrpcProtocolHelpers.ReadCredentialMetadata(DefaultCallCredentialsConfigurator configurator, GrpcChannel channel, HttpRequestMessage message, IMethod method, CallCredentials credentials)
at Grpc.Net.Client.Internal.GrpcCall`2.ReadCredentials(HttpRequestMessage request)
at Grpc.Net.Client.Internal.GrpcCall`2.RunCall(HttpRequestMessage request, Nullable`1 timeout)")
at Google.Ads.Gax.Interceptors.UnaryRpcInterceptor.Intercept[T,TResponse](Task`1 task, Action`1 callback)
at Grpc.Net.Client.Internal.GrpcCall`2.GetResponseHeadersCoreAsync()
at Google.Ads.Gax.Interceptors.UnaryRpcInterceptor.Intercept[T,TResponse](Task`1 task, Action`1 callback)
at Google.Api.Gax.Grpc.ApiCall.GrpcCallAdapter`2.<>c__DisplayClass4_0.<<CallAsync>g__WaitAndCallHandlers|0>d.MoveNext()
--- End of stack trace from previous location ---
at Google.Api.Gax.Grpc.ApiCallRetryExtensions.<>c__DisplayClass0_0`2.<<WithRetry>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Google.Api.Gax.Grpc.ResponseAsyncEnumerable`3.ResponseAsyncEnumerator.MoveNextAsync()
at Microsoft.Ads.Mca.Implementation.AdsSync.Helper.GoogleSyncHelper.<>c__DisplayClass6_0.<<GetCustomerResult>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.Ads.Mca.Implementation.AdsSync.Helper.GoogleSyncHelper.<>c__DisplayClass6_0.<<GetCustomerResult>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.Ads.Mca.Common.Client.Common.ExternalServiceHelper.CallWithRetryAsync[T,V](Func`1 func, IExternalServiceExceptionHandler exceptionHandler, ILogShared logger, String property, ValueTuple`2 retryPolicy, V argumentsTuple)
Thanks,
Guofu