Closed pickardj79 closed 8 years ago
Thanks for reporting this. I'll take a look into it.
Best, Nadine Sundquist, AdWords API Team
Hello,
Are you using the BatchJobService or the MutateJobService when you're getting back the 2 operations (e.g. operations[0].operations[2]) in a row? I'm trying to narrow down if this is a problem that needs to be fixed at a deeper level in AdWords since it would affect more than just my library.
Thanks, Nadine, AdWords API Team
Commenting for @pickardj79 This is from requests sent using the BatchJobService. We haven't seen this behavior with the MutateJobService. I can provide the full request/response exchange if that would help.
Hi Hunter,
Thanks for responding so quickly. I just wanted to verify that it was in the new BatchJobService and not seen anywhere else. At the moment I don't need any additional information. I've filed an issue with the BatchJobService team, and I've emailed you directly (with AdWords API in the subject) so I have a thread to update as we resolve this issue. If you know the email address of @pickardj79 , please add the email as a CC to the email thread I started with you. I'm currently closing the issue here, since it's been determined that this is a deeper issue with the AdWords API, but I will keep the email thread I have with you going.
@pickardj79 If Hunter doesn't have your email address, please tell me, and I'll get your address to add to the thread I have going.
Thanks again for reporting this, Nadine, AdWords API Team
It looks like sometimes the fieldPath field of error objects sometimes contains multiple levels of operations. This causes Google::Ads::Common::ErrorUtils::get_source_operation_index to return an index of 0 when it should be non-zero.
E.g.- an expected example (from the perl debugger):
For another run of the same test program gives a different fieldPath in the ErrorList object:
Google::Ads::Common::ErrorUtils::get_source_operation_index does a pattern match against the fieldPath:
$error->get_fieldPath() =~ /^operations\[(\d+)\]/
and returns the matched number. So in the second case it finds 0 as the index, instead of correctly finding 2.