I'm trying to pull change data via the API and have been routinely 
encountering '500 Internal errors' for the past three weeks. This exact 
query has been running without issue for over 2 years. I've included the 
debug output for the request and response below. I realize there have been 
other similar issues logged and fixes were deployed, but they don't seem to 
have fully addressed the problem. Thanks.

Scott

[2024-02-27 08:59:32,396 - INFO] Request
-------
Method: /google.ads.googleads.v15.services.GoogleAdsService/Search
Host: googleads.googleapis.com
Headers: {
  "developer-token": "REDACTED",
  "login-customer-id": "REDACTED",
  "x-goog-api-client": "gl-python/3.9.2 grpc/1.62.0 gax/2.17.1 gccl/23.0.0 
pb/4.25.3",
  "x-goog-request-params": "customer_id= REDACTED"
}
Request: customer_id: "REDACTED"
query: "\n    SELECT\n      change_event.change_date_time,\n     
 change_event.change_resource_name,\n     
 change_event.change_resource_type,\n     
 change_event.resource_change_operation,\n      change_event.user_email,\n 
     change_event.changed_fields,\n      campaign.name\n    FROM 
change_event\n    WHERE\n      change_event.change_date_time BETWEEN 
\"2024-01-30\" AND \"2024-02-26\"\n    LIMIT 2000"


Response
-------
Headers: {
  "google.ads.googleads.v15.errors.googleadsfailure-bin": 
"\u0012\u0016fn2plGzwwkQEAGLMv5tx6g",
  "grpc-status-details-bin": "\b\r\u0012\u001bInternal error 
encountered.\u001a`\nDtype.googleapis.com/google.ads.googleads.v15.errors.GoogleAdsFailure\u0012\u0018\u0012\u0016fn2plGzwwkQEAGLMv5tx6g",
  "request-id": "fn2plGzwwkQEAGLMv5tx6g"
}
Fault: {}

[2024-02-27 08:59:32,397 - WARNING] Request made: ClientCustomerId: 
REDACTED, Host: googleads.googleapis.com, Method: 
/google.ads.googleads.v15.services.GoogleAdsService/Search, RequestId: 
fn2plGzwwkQEAGLMv5tx6g, IsFault: True, FaultMessage: Internal error 
encountered.
---------------------------------------------------------------------------
_InactiveRpcError                         Traceback (most recent call last)
File 
~/.local/lib/python3.9/site-packages/google/api_core/grpc_helpers.py:76, in 
_wrap_unary_errors.<locals>.error_remapped_callable(*args, **kwargs)
     75 try:
---> 76     return callable_(*args, **kwargs)
     77 except grpc.RpcError as exc:

File ~/.local/lib/python3.9/site-packages/grpc/_interceptor.py:277, in 
_UnaryUnaryMultiCallable.__call__(self, request, timeout, metadata, 
credentials, wait_for_ready, compression)
    268 def __call__(
    269     self,
    270     request: Any,
   (...)
    275     compression: Optional[grpc.Compression] = None,
    276 ) -> Any:
--> 277     response, ignored_call = self._with_call(
    278         request,
    279         timeout=timeout,
    280         metadata=metadata,
    281         credentials=credentials,
    282         wait_for_ready=wait_for_ready,
    283         compression=compression,
    284     )
    285     return response

File ~/.local/lib/python3.9/site-packages/grpc/_interceptor.py:332, in 
_UnaryUnaryMultiCallable._with_call(self, request, timeout, metadata, 
credentials, wait_for_ready, compression)
    329 call = self._interceptor.intercept_unary_unary(
    330     continuation, client_call_details, request
    331 )
--> 332 return call.result(), call

File ~/.local/lib/python3.9/site-packages/grpc/_channel.py:439, in 
_InactiveRpcError.result(self, timeout)
    438 """See grpc.Future.result."""
--> 439 raise self

File ~/.local/lib/python3.9/site-packages/grpc/_interceptor.py:315, in 
_UnaryUnaryMultiCallable._with_call.<locals>.continuation(new_details, 
request)
    314 try:
--> 315     response, call = self._thunk(new_method).with_call(
    316         request,
    317         timeout=new_timeout,
    318         metadata=new_metadata,
    319         credentials=new_credentials,
    320         wait_for_ready=new_wait_for_ready,
    321         compression=new_compression,
    322     )
    323     return _UnaryOutcome(response, call)

File ~/.local/lib/python3.9/site-packages/grpc/_interceptor.py:343, in 
_UnaryUnaryMultiCallable.with_call(self, request, timeout, metadata, 
credentials, wait_for_ready, compression)
    334 def with_call(
    335     self,
    336     request: Any,
   (...)
    341     compression: Optional[grpc.Compression] = None,
    342 ) -> Tuple[Any, grpc.Call]:
--> 343     return self._with_call(
    344         request,
    345         timeout=timeout,
    346         metadata=metadata,
    347         credentials=credentials,
    348         wait_for_ready=wait_for_ready,
    349         compression=compression,
    350     )

File ~/.local/lib/python3.9/site-packages/grpc/_interceptor.py:332, in 
_UnaryUnaryMultiCallable._with_call(self, request, timeout, metadata, 
credentials, wait_for_ready, compression)
    329 call = self._interceptor.intercept_unary_unary(
    330     continuation, client_call_details, request
    331 )
--> 332 return call.result(), call

File ~/.local/lib/python3.9/site-packages/grpc/_channel.py:439, in 
_InactiveRpcError.result(self, timeout)
    438 """See grpc.Future.result."""
--> 439 raise self

File ~/.local/lib/python3.9/site-packages/grpc/_interceptor.py:315, in 
_UnaryUnaryMultiCallable._with_call.<locals>.continuation(new_details, 
request)
    314 try:
--> 315     response, call = self._thunk(new_method).with_call(
    316         request,
    317         timeout=new_timeout,
    318         metadata=new_metadata,
    319         credentials=new_credentials,
    320         wait_for_ready=new_wait_for_ready,
    321         compression=new_compression,
    322     )
    323     return _UnaryOutcome(response, call)

File ~/.local/lib/python3.9/site-packages/grpc/_interceptor.py:343, in 
_UnaryUnaryMultiCallable.with_call(self, request, timeout, metadata, 
credentials, wait_for_ready, compression)
    334 def with_call(
    335     self,
    336     request: Any,
   (...)
    341     compression: Optional[grpc.Compression] = None,
    342 ) -> Tuple[Any, grpc.Call]:
--> 343     return self._with_call(
    344         request,
    345         timeout=timeout,
    346         metadata=metadata,
    347         credentials=credentials,
    348         wait_for_ready=wait_for_ready,
    349         compression=compression,
    350     )

File ~/.local/lib/python3.9/site-packages/grpc/_interceptor.py:329, in 
_UnaryUnaryMultiCallable._with_call(self, request, timeout, metadata, 
credentials, wait_for_ready, compression)
    327         return _FailureOutcome(exception, sys.exc_info()[2])
--> 329 call = self._interceptor.intercept_unary_unary(
    330     continuation, client_call_details, request
    331 )
    332 return call.result(), call

File 
~/.local/lib/python3.9/site-packages/google/ads/googleads/interceptors/exception_interceptor.py:99,
 
in ExceptionInterceptor.intercept_unary_unary(self, continuation, 
client_call_details, request)
     98 if exception:
---> 99     self._handle_grpc_failure(response)
    100 else:

File 
~/.local/lib/python3.9/site-packages/google/ads/googleads/interceptors/exception_interceptor.py:71,
 
in ExceptionInterceptor._handle_grpc_failure(self, response)
     48 """Attempts to convert failed responses to a GoogleAdsException 
object.
     49 
     50 Handles failed gRPC responses of by attempting to convert them
   (...)
     69         will be raised as-is.
     70 """
---> 71 raise self._get_error_from_response(response)

File ~/.local/lib/python3.9/site-packages/grpc/_interceptor.py:315, in 
_UnaryUnaryMultiCallable._with_call.<locals>.continuation(new_details, 
request)
    314 try:
--> 315     response, call = self._thunk(new_method).with_call(
    316         request,
    317         timeout=new_timeout,
    318         metadata=new_metadata,
    319         credentials=new_credentials,
    320         wait_for_ready=new_wait_for_ready,
    321         compression=new_compression,
    322     )
    323     return _UnaryOutcome(response, call)

File ~/.local/lib/python3.9/site-packages/grpc/_channel.py:1193, in 
_UnaryUnaryMultiCallable.with_call(self, request, timeout, metadata, 
credentials, wait_for_ready, compression)
   1187 (
   1188     state,
   1189     call,
   1190 ) = self._blocking(
   1191     request, timeout, metadata, credentials, wait_for_ready, 
compression
   1192 )
-> 1193 return _end_unary_response_blocking(state, call, True, None)

File ~/.local/lib/python3.9/site-packages/grpc/_channel.py:1005, in 
_end_unary_response_blocking(state, call, with_call, deadline)
   1004 else:
-> 1005     raise _InactiveRpcError(state)

_InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
    status = StatusCode.INTERNAL
    details = "Internal error encountered."
    debug_error_string = "UNKNOWN:Error received from peer 
ipv6:%5B2607:f8b0:4023:1000::5f%5D:443 {grpc_message:"Internal error 
encountered.", grpc_status:13, 
created_time:"2024-02-27T08:59:32.391236796-06:00"}"
>

The above exception was the direct cause of the following exception:

InternalServerError                       Traceback (most recent call last)
Cell In[10], line 1
----> 1 resp = list(gas.search(customer_id=cid, query=query))

File 
~/.local/lib/python3.9/site-packages/google/ads/googleads/v15/services/services/google_ads_service/client.py:4171,
 
in GoogleAdsServiceClient.search(self, request, customer_id, query, retry, 
timeout, metadata)
   4164 metadata = tuple(metadata) + (
   4165     gapic_v1.routing_header.to_grpc_metadata(
   4166         (("customer_id", request.customer_id),)
   4167     ),
   4168 )
   4170 # Send the request.
-> 4171 response = rpc(
   4172     request,
   4173     retry=retry,
   4174     timeout=timeout,
   4175     metadata=metadata,
   4176 )
   4178 # This method is paged; wrap the response in a pager, which provides
   4179 # an `__iter__` convenience method.
   4180 response = pagers.SearchPager(
   4181     method=rpc,
   4182     request=request,
   4183     response=response,
   4184     metadata=metadata,
   4185 )

File 
~/.local/lib/python3.9/site-packages/google/api_core/gapic_v1/method.py:131, 
in _GapicCallable.__call__(self, timeout, retry, compression, *args, 
**kwargs)
    128 if self._compression is not None:
    129     kwargs["compression"] = compression
--> 131 return wrapped_func(*args, **kwargs)

File 
~/.local/lib/python3.9/site-packages/google/api_core/grpc_helpers.py:78, in 
_wrap_unary_errors.<locals>.error_remapped_callable(*args, **kwargs)
     76     return callable_(*args, **kwargs)
     77 except grpc.RpcError as exc:
---> 78     raise exceptions.from_grpc_error(exc) from exc

InternalServerError: 500 Internal error encountered. [type_url: 
"type.googleapis.com/google.ads.googleads.v15.errors.GoogleAdsFailure"
value: "\022\026fn2plGzwwkQEAGLMv5tx6g"
]


-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API and Google Ads API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Google Ads API and AdWords API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/b7219d31-89ab-4d81-a095-f3e343f7c6fan%40googlegroups.com.

Reply via email to