Hi Dorian,

Tracking down the root cause is proving quite challenging, so I don't have 
any news to report just yet. In the meantime, retrying failed requests 
(provided you're confident the request is valid) is a good approach.

Thanks,
Josh, AdWords API Team

On Friday, May 4, 2018 at 7:32:45 AM UTC-4, Dorian Kind wrote:
>
> Hi Josh,
>
> any updates on this topic? Can we just retry downloads that fail with this 
> specific error condition (400 HTTP status code and no response content) for 
> the time being?
>
> Thanks for your feedback and best regards,
> Dorian
>
> On Monday, 23 April 2018 14:52:50 UTC+2, Josh Radcliff (AdWords API Team) 
> wrote:
>>
>> Hi Ron,
>>
>> Thanks for getting back to me. I think we have enough examples now to 
>> track this down. The eng team is making progress, but I don't have any 
>> updates to report just yet. I'll reply back as soon as I have more info.
>>
>> Cheers,
>> Josh, AdWords API Team
>>
>> On Monday, April 23, 2018 at 4:16:20 AM UTC-4, Ronald Findling wrote:
>>>
>>> Taking into account the daylight savings we currently have UTC+2.
>>> Concerning the 502 unfortionately I don't have the logs at hand any more 
>>> -- but what I remember was an 502 which resulted in a 400 in our usage of 
>>> the library.
>>>
>>> Best Regards,
>>> Ron
>>>
>>> Am Montag, 16. April 2018 23:01:11 UTC+2 schrieb Josh Radcliff (AdWords 
>>> API Team):
>>>>
>>>> Also, I forgot to ask: is that timestamp in CST?
>>>>
>>>> Thanks,
>>>> Josh, AdWords API Team
>>>>
>>>> On Monday, April 16, 2018 at 4:59:35 PM UTC-4, Josh Radcliff (AdWords 
>>>> API Team) wrote:
>>>>>
>>>>> Hi Ron,
>>>>>
>>>>> I'm a little perplexed by the most recent example. I see it shows both:
>>>>>
>>>>> com.google.api.ads.adwords.lib.utils.ReportException: *502*: Bad 
>>>>> Gateway
>>>>>
>>>>> and:
>>>>>
>>>>> Caused by: HTTP Response Code: *400*
>>>>>
>>>>> Was that a bad copy/paste, or are you actually seeing both 502 and 400 
>>>>> mentioned within the same error?
>>>>>
>>>>> Thanks,
>>>>> Josh, AdWords API Team
>>>>>
>>>>> On Monday, April 16, 2018 at 11:27:53 AM UTC-4, Ronald Findling wrote:
>>>>>>
>>>>>> After adding some more logging, another example that results in a 400 
>>>>>> on our side:
>>>>>>
>>>>>>
>>>>>> 19:07:52 [WARN] c.g.a.a.a.lib.utils.report_download Request made: 
>>>>>> Service: reportdownload Method: POST clientCustomerId: XXX URL: 
>>>>>> https://adwords.google.com//api/adwords/reportdownload/v201710 Request 
>>>>>> ID: null ResponseTime(ms): null OperationsCount: null IsFault: true 
>>>>>> FaultMessage: com.google.api.ads.adwords.lib.utils.ReportException: 502: 
>>>>>> Bad Gateway
>>>>>> 2018-04-15 19:07:52 [INFO] c.g.a.a.a.lib.utils.report_download HTTP 
>>>>>> request:
>>>>>> accept-encoding: [gzip]
>>>>>> authorization: REDACTED
>>>>>> user-agent: [XXX (AwApi-Java, Common-Java/3.12.0, Java/1.8.0_121, 
>>>>>> maven, ReportDownloader)]
>>>>>> developertoken: REDACTED
>>>>>> clientcustomerid: XXX
>>>>>> includezeroimpressions: false
>>>>>>
>>>>>> Content:
>>>>>> __rdquery: SELECT Conversions,ConversionValue FROM 
>>>>>> SHOPPING_PERFORMANCE_REPORT WHERE CountryCriteriaId = 2250 DURING 
>>>>>> 20180316,20180415
>>>>>> __fmt: XML
>>>>>>
>>>>>> Caused by: HTTP Response Code: 400 at 
>>>>>> com.google.api.ads.adwords.lib.utils.v201710.DetailedReportDownloadResponseException$Builder.build(DetailedReportDownloadResponseException.java:35)
>>>>>>
>>>>>> Am Freitag, 30. März 2018 15:15:38 UTC+2 schrieb Josh Radcliff 
>>>>>> (AdWords API Team):
>>>>>>>
>>>>>>> Hi Ron,
>>>>>>>
>>>>>>> Sorry, I'm still having trouble locating those requests in our logs. 
>>>>>>> Would you mind sending over the customer ID where your developer token 
>>>>>>> is 
>>>>>>> registered? You can send it only to me by clicking *Reply privately 
>>>>>>> to author*.
>>>>>>>
>>>>>>> Regarding the timeout theory, the ReportDownloader won't 
>>>>>>> automatically retry requests. However, if you think timeouts are the 
>>>>>>> root 
>>>>>>> cause here, you can adjust the timeout for report downloads 
>>>>>>> programmatically or in your *ads.properties* file. Check out this 
>>>>>>> section of the ads.properties file 
>>>>>>> <https://github.com/googleads/googleads-java-lib/blob/master/examples/adwords_axis/src/main/resources/ads.properties#L47>
>>>>>>>  for 
>>>>>>> details.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Josh, AdWords API Team
>>>>>>>
>>>>>>> On Wednesday, March 28, 2018 at 8:10:33 AM UTC-4, Ronald Findling 
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Hi Josh,
>>>>>>>>
>>>>>>>> I checked the request data that I provided you and they are exactly 
>>>>>>>> what I can see in my logs. Maybe I should mention that the provided 
>>>>>>>> time is 
>>>>>>>> the time at which the request failed not when it was sent to your 
>>>>>>>> servers 
>>>>>>>> (that time is ~30-40 seconds before).
>>>>>>>>
>>>>>>>> Concerning the thread-safety recommendations I'm sure that the 
>>>>>>>> ReportDownloader and its Session are not used in multiple threads in 
>>>>>>>> our 
>>>>>>>> code.
>>>>>>>>
>>>>>>>> Further information: 
>>>>>>>> Checking our errors I found an interesting pattern, failing 
>>>>>>>> requests always take at least 30 seconds (usually 30-31) while 
>>>>>>>> successful 
>>>>>>>> ones are most likely to be around 1 second.
>>>>>>>>
>>>>>>>> Maybe a stupid thought but could it be a something like the 
>>>>>>>> java-library timing out after 30 seconds and retrying using the 
>>>>>>>> provided 
>>>>>>>> session/ReportDownloader again which then violates the threadSafety 
>>>>>>>> and 
>>>>>>>> results in invalid requests?
>>>>>>>>
>>>>>>>> Best Regards,
>>>>>>>> Ron
>>>>>>>>
>>>>>>>>
>>>>>>>> Am Dienstag, 27. März 2018 23:05:31 UTC+2 schrieb Josh Radcliff 
>>>>>>>> (AdWords API Team):
>>>>>>>>>
>>>>>>>>> Hi Ronald,
>>>>>>>>>
>>>>>>>>> I searched the logs on our side and could not find either of those 
>>>>>>>>> requests. Are you sure that they were submitted for the account ID 
>>>>>>>>> you 
>>>>>>>>> mentioned?
>>>>>>>>>
>>>>>>>>> By the way, did you check if you're adhering to the thread safety 
>>>>>>>>> guidelines I mentioned earlier? I just want to make sure we can rule 
>>>>>>>>> that 
>>>>>>>>> out as a possible cause of the errors.
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Josh, AdWords API Team
>>>>>>>>>
>>>>>>>>> On Tuesday, March 27, 2018 at 9:53:11 AM UTC-4, Ronald Findling 
>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> Hi Josh,
>>>>>>>>>>
>>>>>>>>>> thx for the hints.
>>>>>>>>>> Concerning the requested information I can give you 2 identical 
>>>>>>>>>> request where one succeeded and the other one failed with a 400 as 
>>>>>>>>>> shown in 
>>>>>>>>>> my last message.
>>>>>>>>>>
>>>>>>>>>> failed:
>>>>>>>>>> time: 27.03.18 01:06:08 CEST
>>>>>>>>>> googleAdwordsAccountId: 685-366-2732
>>>>>>>>>> SELECT Conversions,ConversionValue FROM 
>>>>>>>>>> SHOPPING_PERFORMANCE_REPORT WHERE CountryCriteriaId = 2826 DURING 
>>>>>>>>>> 20180225,20180327;
>>>>>>>>>>
>>>>>>>>>> succeeded:
>>>>>>>>>> time: 27.03.18 03:06:30 CEST
>>>>>>>>>> googleAdwordsAccountId: 685-366-2732
>>>>>>>>>> SELECT Conversions,ConversionValue FROM 
>>>>>>>>>> SHOPPING_PERFORMANCE_REPORT WHERE CountryCriteriaId = 2826 DURING 
>>>>>>>>>> 20180225,20180327;
>>>>>>>>>>
>>>>>>>>>> Best Regards, Ron
>>>>>>>>>>
>>>>>>>>>> Am Dienstag, 20. März 2018 21:54:13 UTC+1 schrieb Josh Radcliff 
>>>>>>>>>> (AdWords API Team):
>>>>>>>>>>>
>>>>>>>>>>> Hi Raneen,
>>>>>>>>>>>
>>>>>>>>>>> From our logs, it appears that your requests are most frequently 
>>>>>>>>>>> failing with the following errors:
>>>>>>>>>>>
>>>>>>>>>>>    - ReportDefinitionError.CUSTOMER_SERVING_TYPE_REPORT_MISMATCH
>>>>>>>>>>>    - AuthorizationError.USER_PERMISSION_DENIED
>>>>>>>>>>>    - ReportDefinitionError.INVALID_FIELD_NAME_FOR_REPORT
>>>>>>>>>>>    
>>>>>>>>>>> Could you share a report request that failed, with any sensitive 
>>>>>>>>>>> information removed (developer token, OAuth access token, etc.)?
>>>>>>>>>>>
>>>>>>>>>>> Also, I see that you are using the client library for Java. Are 
>>>>>>>>>>> you adhering to the thread-safety recommendations 
>>>>>>>>>>> <https://github.com/googleads/googleads-java-lib/wiki/Thread-Safety>?
>>>>>>>>>>>  
>>>>>>>>>>> For example, you should not use a *ReportDownloader* instance 
>>>>>>>>>>> within multiple threads. Doing so will produce unpredictable 
>>>>>>>>>>> behavior, such 
>>>>>>>>>>> as malformed requests or issues parsing responses.
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Josh, AdWords API Team
>>>>>>>>>>>
>>>>>>>>>>> On Tuesday, March 20, 2018 at 3:06:14 PM UTC-4, Sreelakshmi 
>>>>>>>>>>> Sasidharan (AdWords API Team) wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Hi Ron, 
>>>>>>>>>>>>
>>>>>>>>>>>> The V201702 version of the API is deprecated and all calls made 
>>>>>>>>>>>> to this version of the API will return an error. v201802 
>>>>>>>>>>>> <https://googleadsdeveloper.blogspot.com/2018/02/announcing-v201802-of-adwords-api.html>
>>>>>>>>>>>>  is 
>>>>>>>>>>>> the most recent version of the API currently available. We 
>>>>>>>>>>>> strongly 
>>>>>>>>>>>> recommend that you migrate to this version. For future reference, 
>>>>>>>>>>>> please 
>>>>>>>>>>>> find the deprecation schedule 
>>>>>>>>>>>> <https://developers.google.com/adwords/api/docs/sunset-dates> for 
>>>>>>>>>>>> various API versions. The resources given below might be helpful 
>>>>>>>>>>>> for you in 
>>>>>>>>>>>> migration: 
>>>>>>>>>>>>
>>>>>>>>>>>>    - v201802 migration guide 
>>>>>>>>>>>>    
>>>>>>>>>>>> <https://developers.google.com/adwords/api/docs/guides/migration/v201802>
>>>>>>>>>>>>    - v201710 migration guide 
>>>>>>>>>>>>    
>>>>>>>>>>>> <https://developers.google.com/adwords/api/docs/guides/migration/v201710>
>>>>>>>>>>>>    - v201708 migration guide 
>>>>>>>>>>>>    
>>>>>>>>>>>> <https://developers.google.com/adwords/api/docs/guides/migration/v201708>
>>>>>>>>>>>>  (useful 
>>>>>>>>>>>>    if you are migrating from v201705)
>>>>>>>>>>>>    - Release notes 
>>>>>>>>>>>>    <https://developers.google.com/adwords/api/docs/reference/>
>>>>>>>>>>>>
>>>>>>>>>>>> You could follow our Google Ads Developer blog 
>>>>>>>>>>>> <https://googleadsdeveloper.blogspot.com/search/label/adwords_api> 
>>>>>>>>>>>> or 
>>>>>>>>>>>> the AdWords API Announcements forum 
>>>>>>>>>>>> <https://groups.google.com/forum/#!forum/adwordsapi-announcements> 
>>>>>>>>>>>> to 
>>>>>>>>>>>> make sure that you are not missing any announcements about the API 
>>>>>>>>>>>> in the 
>>>>>>>>>>>> future. Please let me know if you have any further questions. 
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> Sreelakshmi, AdWords API Team
>>>>>>>>>>>>
>>>>>>>>>>>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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 
"AdWords API and Google Ads API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/a59b8e7c-bf1d-45dd-935a-fe346ea8c7e4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
    • ... 'Josh Radcliff (AdWords API Team)' via AdWords API Forum
    • ... Zweitze
      • ... 'Josh Radcliff (AdWords API Team)' via AdWords API Forum
  • ... Ronald Findling
  • ... Ronald Findling
    • ... 'Josh Radcliff (AdWords API Team)' via AdWords API Forum
      • ... 'Josh Radcliff (AdWords API Team)' via AdWords API Forum
        • ... Ronald Findling
        • ... 'Josh Radcliff (AdWords API Team)' via AdWords API Forum
        • ... Dorian Kind
        • ... 'Josh Radcliff (AdWords API Team)' via AdWords API and Google Ads API Forum
        • ... Ronald Findling
        • ... 'Josh Radcliff (AdWords API Team)' via AdWords API and Google Ads API Forum
        • ... Ronald Findling
        • ... 'AdWords API Advisor' via AdWords API and Google Ads API Forum
        • ... Zweitze
        • ... 'Josh Radcliff (AdWords API Team)' via AdWords API and Google Ads API Forum
        • ... arthur . balduini
        • ... 'Josh Radcliff (AdWords API Team)' via AdWords API and Google Ads API Forum
        • ... 'Josh Radcliff (AdWords API Team)' via AdWords API and Google Ads API Forum
        • ... 'Josh Radcliff (AdWords API Team)' via AdWords API and Google Ads API Forum

Reply via email to