request limit seems to return 200, not 429

X-Client-Session-Id: 6e8cdf96-0508-11e9-8014-525400a87d41_6328

This request received a response where the body looks like it is falling foul of the "too many concurrent requests" rule, but it received the status code of 200, not 429 as expected.

@{"@odata.context":"https://hosted.datascopeapi.reuters.com/RestApi/v1/$metadata#ThomsonReuters.Dss.Api.Extractions.ExtractionRequests.ExtractionResult","Contents":[],"Notes":["Extraction Services Version 12.2.39833 (738e4c2fbb28), Built Nov 1 2018 10:46:49\r\nProcessing started at 2018-12-27 08:45:47.\r\nUser ID: 9019523\r\nExtraction ID: 2000000056735414\r\nSchedule: 0x06761d89c41029a9 (ID = 0x0000000000000000)\r\nSchedule dispatched via message queue (0x06761d89c41029a9)\r\nSchedule Time: 2018-12-27 08:45:47\r\nInput List (45 items): (ID = 0x06761d89c41029a9) Created: 2018-12-27 08:45:47 Last Modified: 2018-12-27 08:45:47\r\nReport Template (11 fields): _OnD_0x06761d89c41029a9 (ID = 0x06761d89c43029a9) Created: 2018-12-27 08:45:45 Last Modified: 2018-12-27 08:45:45\r\nERROR: Extraction 0x06761d89c41029a9 failed because: 9019523 has 2 ET2 extractions, limit is 2\r\n"]}

Best Answer

  • davet1Alex Putkov.

    I did not test version 12.3, but just now I tested version 13.0, by running 4 simultaneous queries:

    • 2 queries successfully delivered data
    • The other 2 queries received a response with HTTP status 429 (Too Many Requests), and their body contained the following:
    {
    "error": {
    "message": "Failure reason: UserExtractionLimitExceeded: 33314 has 2 ET2 extractions, limit is 2"
    }
    }

    The issue has been corrected.

Answers

  • davet1,

    there is a limit of 1 Elektron Timeseries request per user (concurrent requests are not supported), as stated on page 11 of the Best practices and Limits guide. I'm guessing that is the type of request you made, as the error mentions 2 ET2 extractions.

    I would expect the error to mention limit is 1 instead of limit is 2, but that might be a typo in the error message ...

    That does not explain why the HTTP status is not 429, I escalated that.

  • My request was for "#ThomsonReuters.Dss.Api.Extractions.ExtractionRequests.PriceHistoryExtractionRequest"

    is that an Elektron Timeseries request? Where is this defined?

  • davet1,

    Ah ok, you are making a Price History extraction request; sorry, my guess that you were making an Elektron Timeseries extraction request was wrong then, so please ignore my previous answer which would apply to TRTH, but does not apply here.

    The extraction limits for DSS are described starting on page 9 of the DSS Best practices and Limits guide. I do not understand why you would be limited to 2 Price History extraction requests; that is strange, and needs investigation. Hopefully the development team can answer this based on the client session Id you kindly submitted.

  • My mistake, I made the wrong guess, please ignore this answer.

  • davet1, I have just received another response from the development team. It seems that when a user extraction limit is exceeded, due to a bug an incorrect status is returned (i.e. not a 429). Version 12.3 should correct this, it will be released on 7 January 2019.

  • Ok, thank you. Why does the response body talk about Elektron?

  • davet1, it does not really talk about Elektron. I mistakenly interpreted ET in the error message as Elektron Timeseries (which is a TRTH extraction request actually, not a DSS request, but both use the same platform), hence the confusion.

  • This isn't fixed. I just received an http 200 with the body:

    @{"@odata.context":"https://hosted.datascopeapi.reuters.com/RestApi/v1/$metadata#RawExtractionResults/$entity","JobId":"0x06840cf492404386",[...snip because stupid character limit...]

    ERROR: Extraction 0x06840cf492404386 failed because: 9019523 has 2 ET2 extractions, limit is 2\r\n"]}

  • The product team is still investigating.