google-ads-java: Mutate Calls Internal Server Error : unexpected EOS on DATA frame
Hi, I am having a problem with the Java client library. I am creating lots of Campaigns, Adgroups, Ads, keywords, etc.
I use the Mutate for every resource. For example :
try (AdGroupAdServiceClient adGroupAdServiceClient = googleAdsClient.getLatestVersion().createAdGroupAdServiceClient()) {
MutateAdGroupAdsResponse response =
adGroupAdServiceClient.mutateAdGroupAds(Long.toString(customerId), adGroupAdOperations);
for (MutateAdGroupAdResult result : response.getResultsList()) {
System.out.printf(
"Expanded text ad created with resource name: %s%n", result.getResourceName());
}
} catch (GoogleAdsException gae) {
int j = 0;
for (GoogleAdsError googleAdsError : gae.getGoogleAdsFailure().getErrorsList()) {
System.err.printf(" Error %d: %s%n", j++, googleAdsError);
}
}
Before, i used to do this in just one call adding all the operations in the adGroupAdOperations (that could be up to 2k operations), but I started having a problem with an exception in GRPC. “unexpected EOS on DATA frame” . So, I started grouping this requests in about 100 operations per mutate call. Now i have the RESOURCE_TEMPORARILY_EXHAUSTED error. Is this the expected way to operate or is it some kind of bug regarding the GRPC client? If not, how can I know which is the right amount of operations in mutate calls not to fall in the EOS problem and sleep time between calls not to get the Resource Exhausted?
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 30 (16 by maintainers)
I think you can only mutate the criteria for a single ad groups in a request. Our support staff on the forum would be best placed to help you with this.
A couple of quick suggestions that spring to mind:
But really, this is a question that’s better suited to our support teams. Please reach out to them on the forum and they’ll help you figure out a solution.
So this request did fail, but the error in the logs is different:
Hopefully this gives you a heads up of what went wrong so you can make progress. In the meantime we’ll need to look at the grpc-java implemenation to see where the EOS error originates.
Hey, this is a good question, thanks for asking.
Here are the relevant limits to bear in mind:
We are planning to launch a MutateJob service soon which will allow running larger workloads asynchronously and handle most/all of this on the backend. Stay tuned to the blog and release notes for updates!