Mutate Calls Internal Server Error : unexpected EOS on DATA frame

See original GitHub issue

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?

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:30 (16 by maintainers)

github_iconTop GitHub Comments

1reaction
nwbirniecommented, Jan 21, 2021

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:

  • Batch your operations together by ad group, rather than by product group.
  • BatchJobService would potentially take longer to execute, but I think would avoid this error.

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.

1reaction
nwbirniecommented, Jun 26, 2019

So this request did fail, but the error in the logs is different:

errors: [{
    error_code: "AdGroupCriterionError.OPERATIONS_FOR_TOO_MANY_SHOPPING_ADGROUPS",
    field_path: "operations[12]",
    error_message: "Operations in the mutate request changes too many shopping ad groups. Please split requests for multiple shopping ad groups across multiple requests."
  },

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.

Read more comments on GitHub >

github_iconTop Results From Across the Web

INTERNAL: Received unexpected EOS on empty DATA frame ...
Hi @stripies, this is a commonly known internal error in GAPIC client lib. I would suggest contacting Firebase Support to assist you further....
Read more >
Received unexpected EOS on empty DATA frame from server
Hi,. When querying ad_group_ad_asset_view we sometimes get back the following error: INTERNAL: Received unexpected EOS on empty DATA frame from ...
Read more >
[grpc-io] Re: what does "Received unexpected EOS on DATA ...
"Received unexpected EOS on DATA frame from server" indicates that the client receives corrupted data at the end of response message or ...
Read more >
i.grpc.internal.AbstractClientStream - Received data on closed ...
GRPC call failing with error "Received unexpected EOS on DATA frame from server." ... Why is the stream closed when using RestTemplate to...
Read more >
pdf file - Modern Statistics with R
typed, meaning that the data type of an R variable also can change over time. This also means that ... vector inside a...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found