Upgrade from Eikon -> Workspace. Learn about programming differences.

For a deeper look into our Eikon Data API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
31 2 0 5

Eikon Python exception 401

Hi, My Eikon simple Python code gets every day the same authentification error code 401:

eikon.eikonError.EikonError: Error code 401 | Client Error: Unauthorized - Eikon API Proxy requires authentication.

My Eikon Desktop is however up and running. I have to shut it down and restart it to alleviate this problem. As i am trying to automate this data collection, i would like to have this code running every day without me having to manually shut down and restart my Eikon Desktop.

1 - Why is this error raised even though the Deskop is running? I would have thought that my Desktop could be running for several days without having to restart it?

2 - Is there a way to shut down and restart the Desktop programmatically via a windows command for example, so that my Python API does not face this error?

3 - Please give me a hint on how to solver this problem

Thank you

eikoneikon-data-apipythonrefinitiv-dataplatform-eikonworkspaceworkspace-data-apierror-401
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
Accepted
39.4k 77 11 27

@Mehdi
I think we finally figured out what's going on. It appears that your PC enters sleep mode when you leave it running overnight. In sleep mode applications are not running and cannot communicate over the network. This results in the heartbeat between Eikon and Eikon platform being lost, which in turn results in the expiry of the authentication token. When PC wakes up and Eikon application resumes, it refreshes the token. Eikon API Proxy however does not refresh the token and continues to use the original token it received when Eikon started. Since the original token is at this point invalid, any requests sent using Eikon Data APIs fail until Eikon is restarted. We acknowledge that this is a deficiency in Eikon API Proxy. While we are looking into ways to address it, the immediate workaround we can suggest is to either shut down Eikon every night and launch it in the morning or to make sure your PC does not go to sleep overnight so Eikon keeps running and communicating with Eikon platform.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
18.2k 21 13 21

Hi @Mehdi

If you leave Eikon Desktop open for a long period, there is forced log out (but I do not know the detail like how often).

Eikon Data APIs is for a single desktop usage and may not be suitable for schedule automation which does not request user interaction.

If you are looking for a feed solution, you may consider enterprise solution.

Please reach out to your local Refinitiv representative in your country.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
39.4k 77 11 27

@Mehdi
What API call returns this message? Do you get it when you import eikon library and call set_api_key method? Or do you get it when you request data using get_data or get_timeseries?
Could you describe the workflow leading to the error you experienced? Does the instance of Python where your scripts are executed run overnight? Or do you launch your scripts in a new instance of Python every day? In other words what's the length of time between importing eikon library and executing set_api_key method, and you receiving the error?
It may be helpful to generate the SxS log file as described in this post on another thread. From the log we may be able to tell what happens prior to you receiving the error and what could be the root cause of the issue.
If all else fails, you could kill Eikon application and launch it again from your Python script. Killing Eikon is a brute force action effectively equivalent to terminating Eikon processes from Windows Task Manager, which may result in the loss of data (Eikon workspaces won't be saved, Eikon cache may become corrupt and may need to be cleared etc). This is why we don't generally recommend it. I would only use it as the last resort.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
31 2 0 5

Hi

I am using get_timeseries to retrieve eod prices of some indices from the Python API.

Here is the error message:

File "**\lib\site-packages\eikon\time_series.py", line 173, in get_timeseries
ts_result = eikon.json_requests.send_json_request(TimeSeries_UDF_endpoint, payload, debug=debug)
File "**\lib\site-packages\eikon\json_requests.py", line 100, in send_json_request
raise_for_status(response)
File "**\lib\site-packages\eikon\json_requests.py", line 191, in raise_for_status
raise EikonError(response.status_code, error_msg)
eikon.eikonError.EikonError: Error code 401 | Client Error: Unauthorized - Eikon API Proxy requires authentication.

I just tried now (morning), I did NOT shut down my Desktop last night so it is currently running.I do launch my python code every day, it is not a process that keeps running 24 h a day as it is just downloading close prices and quits. So to answer your question, there is not much time spent between set_api_key and the call to get_time_series

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
39.4k 77 11 27

@Mehdi
Thanks for the info. What you experience is not the expected behavior. To make sure I left my Eikon running overnight and today I have no problem retrieving timeseries using Eikon Data APIs.
What I suggest you do next is generate the SxS log file as described in this post. Before you leave for the day enable the logging (this will require restarting Eikon). The next day reproduce the error, grab the log and post it here. Then you can turn the logging off again.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
31 2 0 5

hi Alex,

Please find the SxS log:

[2019-05-13 06:39:34.727|1|data-api|3|DEBUG] [HomeController][HomeController::create] Creating index controller.
[2019-05-13 06:39:34.880|1|data-api|3|DEBUG] [TracingMiddleware]Creating new request tracing middleware.
[2019-05-13 06:39:34.881|1|data-api|3|DEBUG] [TracingMiddleware]Got new incoming request, request id is #b70ec5b9-8738-4a78-aba5-5839c8593acb.
[2019-05-13 06:39:34.881|1|data-api|1|INFO] [LogRequestDetailMiddleware][Request #b70ec5b9-8738-4a78-aba5-5839c8593acb] Processing request on path '/' with this configuration: {"currentVersion":"1.1.0-nightly20190116","dataCenter":"","endPointURL":"https://emea1.apps.cp.thomsonreuters.com/Apps/UDF/MSF","minimalVersion":"0.0.0","minimalVersionRequirementMet":true,"proxyEnabled":true,"streaming":{"enabled":true,"maxConnection":1},"throttling":{"dailyRequestCount":{"enabled":true,"max":10000},"dailyVolume":{"enabled":true,"max":5000000},"requestCount":{"enabled":true,"max":5,"period":1},"volume":{"enabled":true,"max":50000,"period":60}},"usageTrackingEnabled":true}
[2019-05-13 06:39:34.882|1|data-api|1|INFO] [LogRequestDetailMiddleware][Request #b70ec5b9-8738-4a78-aba5-5839c8593acb] Datacenter:
[2019-05-13 06:39:34.882|1|data-api|1|INFO] [LogRequestDetailMiddleware][Request #b70ec5b9-8738-4a78-aba5-5839c8593acb] Endpoints URL: https://emea1.apps.cp.thomsonreuters.com/Apps/UDF/MSF
[2019-05-13 06:39:34.883|1|data-api|1|INFO] [LogRequestDetailMiddleware][Request #b70ec5b9-8738-4a78-aba5-5839c8593acb] Sending request to https://emea1.apps.cp.thomsonreuters.com/Apps/UDF/MSF
[2019-05-13 06:39:34.883|1|data-api|2|DEBUG] [LogRequestDetailMiddleware][Request #b70ec5b9-8738-4a78-aba5-5839c8593acb] Payload is {"Entity":{"E":"TimeSeries","W":{"rics":[".HFRXGL"],"fields":["CLOSE","TIMESTAMP"],"interval":"daily","startdate":"2019-03-14T00:00:00","enddate":"2019-05-12T00:00:00","calendar":"tradingdays"}}}
[2019-05-13 06:39:34.884|1|data-api|2|DEBUG] [LogRequestDetailMiddleware][Request #b70ec5b9-8738-4a78-aba5-5839c8593acb] AppId is ****
[2019-05-13 06:39:34.884|1|data-api|3|DEBUG] [Throttling][Request #b70ec5b9-8738-4a78-aba5-5839c8593acb] [RBT] Limit: 5 - Step: 1 - Sum: 1 - Remaining: 4 - Request rejected: false
[2019-05-13 06:39:34.885|1|data-api|3|DEBUG] [Throttling][Request #b70ec5b9-8738-4a78-aba5-5839c8593acb] [DRBT] Limit: 10000 - Step: 1 - Sum: 1 - Remaining: 9999 - Request rejected: false
[2019-05-13 06:39:34.886|1|data-api|3|DEBUG] [ApiController][ApiController::create] Creating API controller.
[2019-05-13 06:39:34.887|1|data-api|3|DEBUG] [UsageTrackingService]Sending event RequestReceived to usage tracking service
[2019-05-13 06:39:34.889|1|api-svc|2|DEBUG] [bus] channel=/desktopsxs name=sxs:GetSetting callId=342 data={"settingName":"RDMC.PLATFORMCONFIG","provider":"Configuration","isVersioning":false,"action":"GetSetting"}
[2019-05-13 06:39:34.890|1|data-api|3|DEBUG] [SettingsAggregatorService]Saving setting value - Name: APIPROXY.THROTTLING.STORE, Value: {"dailyRequest":"[[\"127.0.0.1\",[[1557698400000,1]]]]","dailyVolume":"[]"}
[2019-05-13 06:39:34.890|1|data-api|3|DEBUG] [SettingsAggregatorService]Saving setting value - Name: APIPROXY.THROTTLING.STORE, Value: {"dailyRequest":"[[\"127.0.0.1\",[[1557698400000,1]]]]","dailyVolume":"[]"}
[2019-05-13 06:39:34.891|1|api-svc|2|DEBUG] [bus] channel=/desktopsxs name=sxs:SetSetting callId=343 data={"settingName":"APIPROXY.THROTTLING.STORE","provider":"Configuration","settingValue":"{\"dailyRequest\":\"[[\\\"127.0.0.1\\\",[[1557698400000,1]]]]\",\"dailyVolume\":\"[]\"}","action":"SetSetting"}
[2019-05-13 06:39:34.892|1|api-svc|2|DEBUG] [bus] channel=/desktopsxs name=sxs:SetSetting callId=344 data={"settingName":"APIPROXY.THROTTLING.STORE","provider":"Configuration","settingValue":"{\"dailyRequest\":\"[[\\\"127.0.0.1\\\",[[1557698400000,1]]]]\",\"dailyVolume\":\"[]\"}","action":"SetSetting"}
[2019-05-13 06:39:34.892|1|api-svc|2|DEBUG] [bus] onCallback name=sxs:GetSetting callId=342 data~={"callId":342,"value":"PROD","action":"ReturnCall"}
[2019-05-13 06:39:34.892|1|data-api|3|DEBUG] [ProductInsight]Token: ****************************b860 - Event: RequestReceived - Attributes: {"AppKey":"c211da285b594a709297836ab72629ac582488ec","EndPoint":"TimeSeries","API":"Eikon Data APIs"}
[2019-05-13 06:39:34.892|1|data-api|3|DEBUG] Received new usage tracking request for event RequestReceived
[2019-05-13 06:39:34.892|1|data-api|3|DEBUG] Sending usage tracking payload {"Target":"/UsageTracking","RequestType":"send","Method":"EventRawData","MethodParam":{"EventName":"RequestReceived","EventProperties":"{\"AppKey\":\"***\",\"EndPoint\":\"TimeSeries\",\"API\":\"Eikon Data APIs\"}","ProjectToken":"***"}} on EikonBus channel /UsageTracking
[2019-05-13 06:39:34.919|1|api-svc|2|DEBUG] [bus] onCallback name=sxs:SetSetting callId=343 data~={"callId":343,"result":true,"action":"ReturnCall"}
[2019-05-13 06:39:34.921|1|api-svc|2|DEBUG] [bus] onCallback name=sxs:SetSetting callId=344 data~={"callId":344,"result":true,"action":"ReturnCall"}
[2019-05-13 06:39:34.968|1|data-api|2|DEBUG] [UdfClientLoggingDecorator]UDF Transaction ID: undefined
[2019-05-13 06:39:34.968|1|data-api|0|WARN] [UdfClientLoggingDecorator]UDF returned status code 401 (undefined) - An error may have occured on server side - Returning code and message as-is to the client.
[2019-05-13 06:39:34.970|1|data-api|3|DEBUG] [Throttling][Request #b70ec5b9-8738-4a78-aba5-5839c8593acb] [DVBT] Limit: 5000000.00 KB - Step: 0.00 KB - Sum: 0.00 KB - Remaining: 5000000.00 KB - Request rejected: false
[2019-05-13 06:39:34.971|1|data-api|3|DEBUG] [Throttling][Request #b70ec5b9-8738-4a78-aba5-5839c8593acb] [VBT] Limit: 50000.00 KB - Step: 0.00 KB - Sum: 0.00 KB - Remaining: 50000.00 KB - Request rejected: false
[2019-05-13 06:39:34.973|1|data-api|3|DEBUG] [SettingsAggregatorService]Saving setting value - Name: APIPROXY.THROTTLING.STORE, Value: {"dailyRequest":"[[\"127.0.0.1\",[[1557698400000,1]]]]","dailyVolume":"[]"}
[2019-05-13 06:39:34.974|1|data-api|3|DEBUG] [SettingsAggregatorService]Saving setting value - Name: APIPROXY.THROTTLING.STORE, Value: {"dailyRequest":"[[\"127.0.0.1\",[[1557698400000,0]]]]","dailyVolume":"[]"}
[2019-05-13 06:39:34.976|1|api-svc|2|DEBUG] [bus] channel=/desktopsxs name=sxs:SetSetting callId=345 data={"settingName":"APIPROXY.THROTTLING.STORE","provider":"Configuration","settingValue":"{\"dailyRequest\":\"[[\\\"127.0.0.1\\\",[[1557698400000,1]]]]\",\"dailyVolume\":\"[]\"}","action":"SetSetting"}
[2019-05-13 06:39:34.979|1|api-svc|2|DEBUG] [bus] channel=/desktopsxs name=sxs:SetSetting callId=346 data={"settingName":"APIPROXY.THROTTLING.STORE","provider":"Configuration","settingValue":"{\"dailyRequest\":\"[[\\\"127.0.0.1\\\",[[1557698400000,0]]]]\",\"dailyVolume\":\"[]\"}","action":"SetSetting"}
[2019-05-13 06:39:34.986|1|api-svc|2|DEBUG] [bus] onCallback name=sxs:SetSetting callId=345 data~={"callId":345,"result":true,"action":"ReturnCall"}[2019-05-13 06:39:34.987|1|api-svc|2|DEBUG] [bus] onCallback name=sxs:SetSetting callId=346 data~={"callId":346,"result":true,"action":"ReturnCall"****

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
39.4k 77 11 27

@Mehdi
Thanks for the log. Very interesting. I expected that the error was generated by Eikon API Proxy, but based on the following two lines in the log the error appears to come from the Web service fetching the data.

[2019-05-13 06:39:34.968|1|data-api|2|DEBUG] 
[UdfClientLoggingDecorator]UDF Transaction ID: undefined

[2019-05-13 06:39:34.968|1|data-api|0|WARN]
[UdfClientLoggingDecorator]UDF returned status code 401 (undefined) - An error may have occured on server side - Returning code and message as-is to the client.
What we need to do as the next step is to capture the response from the Web service using Fiddler or another HTTP analyzer. What we're looking for is the request to https://emea1.apps.cp.thomsonreuters.com/Apps/UDF/MSF sent when you execute get_timeseries method that returns "EikonError: Error code 401". You want to capture the entire session for this request, i.e. the request and the response with all the details. I understand you have opened case 07593443 for this problem with Refinitiv Helpdesk. You can post the HTTP capture here or if you prefer you can send it to Refinitiv Helpdesk.
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
31 2 0 5

Alex,

I tried to use fiddler and run my query. Here are the details. I hope this is what i you are asking?

REQUEST:

Headers:

POST /Apps/UDF/MSF HTTP/1.1
Accept-Encoding: gzip, deflate
Content-Type: application/json
x-tr-applicationid: APIPROXY.c211da285b594a709297836ab72629ac582488ec
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; Tablet PC 2.0; Thomson Reuters File Download 6.0)
Host: emea1.apps.cp.thomsonreuters.com
Content-Length: 195
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: iPlanetDirectoryPro=AQIC5wM2LY4SfcyBiaCXdc8A8DjFGATfhVPZpOwUbmA9qbY%3D%40AAJTSQACMTAAAlNLABQtODU4NzIyNzM0MjQzNTc3MzMxNwACUzEAAjI2%23; EIKON_USER_AGENT="NET45,EIKON9.0.47109,SR0,ADF6.20184.11.20"

TextView:

{"Entity":{"E":"TimeSeries","W":{"rics":[".HFRXGL"],"fields":["CLOSE","TIMESTAMP"],"interval":"daily","startdate":"2019-03-15T00:00:00","enddate":"2019-05-13T00:00:00","calendar":"tradingdays"}}}

SyntaxView:

{"Entity":{"E":"TimeSeries","W":{"rics":[".HFRXGL"],"fields":["CLOSE","TIMESTAMP"],"interval":"daily","startdate":"2019-03-15T00:00:00","enddate":"2019-05-13T00:00:00","calendar":"tradingdays"}}}

Auth:

No Proxy-Authorization Header is present.

No Authorization Header is present.

Raw:

POST https://emea1.apps.cp.thomsonreuters.com/Apps/UDF/MSF HTTP/1.1
Accept-Encoding: gzip, deflate
Content-Type: application/json
x-tr-applicationid: APIPROXY.c211da285b594a709297836ab72629ac582488ec
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; Tablet PC 2.0; Thomson Reuters File Download 6.0)
Host: emea1.apps.cp.thomsonreuters.com
Content-Length: 195
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: iPlanetDirectoryPro=AQIC5wM2LY4SfcyBiaCXdc8A8DjFGATfhVPZpOwUbmA9qbY%3D%40AAJTSQACMTAAAlNLABQtODU4NzIyNzM0MjQzNTc3MzMxNwACUzEAAjI2%23; EIKON_USER_AGENT="NET45,EIKON9.0.47109,SR0,ADF6.20184.11.20"

{"Entity":{"E":"TimeSeries","W":{"rics":[".HFRXGL"],"fields":["CLOSE","TIMESTAMP"],"interval":"daily","startdate":"2019-03-15T00:00:00","enddate":"2019-05-13T00:00:00","calendar":"tradingdays"}}}

RESPONSE:

Headers:

HTTP/1.1 501 Not Implemented
Server: Varnish
Content-Type: text/plain
Content-Length: 19
Accept-Ranges: bytes
Date: Tue, 14 May 2019 06:32:47 GMT
X-Varnish: 1421837500
Age: 0
Via: 1.1 varnish
Connection: close
X-TR-Varnish-Server: DTCP-ERPCPRP04
X-Varnish-Cache: miss
Set-Cookie: iPlanetDirectoryPro=;Path=/

TextView:

501 Not Implemented

SyntaxeView:

501 Not Implemented

Raw:

HTTP/1.1 501 Not Implemented
Server: Varnish
Content-Type: text/plain
Content-Length: 19
Accept-Ranges: bytes
Date: Tue, 14 May 2019 06:32:47 GMT
X-Varnish: 1421837500
Age: 0
Via: 1.1 varnish
Connection: close
X-TR-Varnish-Server: DTCP-ERPCPRP04
X-Varnish-Cache: miss
Set-Cookie: iPlanetDirectoryPro=;Path=/

501 Not Implemented

Thank you again for your help

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
39.4k 77 11 27

@Mehdi
Thanks a lot. This capture is exactly what I was looking for. Unfortunately yesterday we had an outage on one of the systems on Eikon platform, which may have contaminated the result of the capture. For example I'm surprised to see HTTP status 501 in the capture while the error you were getting previously implied HTTP status 401.
The outage on the Eikon platform is resolved now. Could I kindly ask you to generate another HTTP capture the same way you did last time and either post it here or send it to Refinitiv Helpdesk?

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
31 2 0 5

Alex,

Here is the log from my trial again today. Can you please have a look so that we can try to solve this problem for good? Thx a lot

[2019-05-17 06:59:56.453|1|data-api|3|DEBUG] [TracingMiddleware]Creating new request tracing middleware.
[2019-05-17 06:59:56.455|1|data-api|3|DEBUG] [TracingMiddleware]Got new incoming request, request id is #f29d4e1c-329b-49ed-a80e-69da7c35c46c.
[2019-05-17 06:59:56.456|1|data-api|1|INFO] [LogRequestDetailMiddleware][Request #f29d4e1c-329b-49ed-a80e-69da7c35c46c] Processing request on path '/' with this configuration: {"currentVersion":"1.1.0-nightly20190116","dataCenter":"","endPointURL":"https://emea1.apps.cp.thomsonreuters.com/Apps/UDF/MSF","minimalVersion":"0.0.0","minimalVersionRequirementMet":true,"proxyEnabled":true,"streaming":{"enabled":true,"maxConnection":1},"throttling":{"dailyRequestCount":{"enabled":true,"max":10000},"dailyVolume":{"enabled":true,"max":5000000},"requestCount":{"enabled":true,"max":5,"period":1},"volume":{"enabled":true,"max":50000,"period":60}},"usageTrackingEnabled":true}
[2019-05-17 06:59:56.456|1|data-api|1|INFO] [LogRequestDetailMiddleware][Request #f29d4e1c-329b-49ed-a80e-69da7c35c46c] Datacenter:
[2019-05-17 06:59:56.457|1|data-api|1|INFO] [LogRequestDetailMiddleware][Request #f29d4e1c-329b-49ed-a80e-69da7c35c46c] Endpoints URL: https://emea1.apps.cp.thomsonreuters.com/Apps/UDF/MSF
[2019-05-17 06:59:56.458|1|data-api|1|INFO] [LogRequestDetailMiddleware][Request #f29d4e1c-329b-49ed-a80e-69da7c35c46c] Sending request to https://emea1.apps.cp.thomsonreuters.com/Apps/UDF/MSF
[2019-05-17 06:59:56.458|1|data-api|2|DEBUG] [LogRequestDetailMiddleware][Request #f29d4e1c-329b-49ed-a80e-69da7c35c46c] Payload is {"Entity":{"E":"TimeSeries","W":{"rics":[".HFRXGL"],"fields":["CLOSE","TIMESTAMP"],"interval":"daily","startdate":"2019-03-18T00:00:00","enddate":"2019-05-16T00:00:00","calendar":"tradingdays"}}}
[2019-05-17 06:59:56.459|1|data-api|2|DEBUG] [LogRequestDetailMiddleware][Request #f29d4e1c-329b-49ed-a80e-69da7c35c46c] AppId is ***
[2019-05-17 06:59:56.460|1|data-api|3|DEBUG] [Throttling][Request #f29d4e1c-329b-49ed-a80e-69da7c35c46c] [RBT] Limit: 5 - Step: 1 - Sum: 1 - Remaining: 4 - Request rejected: false
[2019-05-17 06:59:56.460|1|data-api|3|DEBUG] [Throttling][Request #f29d4e1c-329b-49ed-a80e-69da7c35c46c] [DRBT] Limit: 10000 - Step: 1 - Sum: 1 - Remaining: 9999 - Request rejected: false
[2019-05-17 06:59:56.462|1|data-api|3|DEBUG] [ApiController][ApiController::create] Creating API controller.
[2019-05-17 06:59:56.466|1|data-api|3|DEBUG] [UsageTrackingService]Sending event RequestReceived to usage tracking service
[2019-05-17 06:59:56.468|1|data-api|3|DEBUG] [SettingsAggregatorService]Saving setting value - Name: APIPROXY.THROTTLING.STORE, Value: {"dailyRequest":"[[\"127.0.0.1\",[[1558044000000,1],[1557957600000,62]]]]","dailyVolume":"[[\"127.0.0.1\",[[1557957600000,1933799]]]]"}
[2019-05-17 06:59:56.468|1|data-api|3|DEBUG] [SettingsAggregatorService]Saving setting value - Name: APIPROXY.THROTTLING.STORE, Value: {"dailyRequest":"[[\"127.0.0.1\",[[1558044000000,1],[1557957600000,62]]]]","dailyVolume":"[[\"127.0.0.1\",[[1557957600000,1933799]]]]"}
[2019-05-17 06:59:56.469|1|api-svc|2|DEBUG] [bus] channel=/desktopsxs name=sxs:GetSetting callId=340 data={"settingName":"RDMC.PLATFORMCONFIG","provider":"Configuration","isVersioning":false,"action":"GetSetting"}
[2019-05-17 06:59:56.470|1|api-svc|2|DEBUG] [bus] channel=/desktopsxs name=sxs:SetSetting callId=341 data={"settingName":"APIPROXY.THROTTLING.STORE","provider":"Configuration","settingValue":"{\"dailyRequest\":\"[[\\\"127.0.0.1\\\",[[1558044000000,1],[1557957600000,62]]]]\",\"dailyVolume\":\"[[\\\"127.0.0.1\\\",[[1557957600000,1933799]]]]\"}","action":"SetSetting"}
[2019-05-17 06:59:56.472|1|api-svc|2|DEBUG] [bus] channel=/desktopsxs name=sxs:SetSetting callId=342 data={"settingName":"APIPROXY.THROTTLING.STORE","provider":"Configuration","settingValue":"{\"dailyRequest\":\"[[\\\"127.0.0.1\\\",[[1558044000000,1],[1557957600000,62]]]]\",\"dailyVolume\":\"[[\\\"127.0.0.1\\\",[[1557957600000,1933799]]]]\"}","action":"SetSetting"}
[2019-05-17 06:59:56.481|1|api-svc|2|DEBUG] [bus] onCallback name=sxs:GetSetting callId=340 data~={"callId":340,"value":"PROD","action":"ReturnCall"}
[2019-05-17 06:59:56.481|1|api-svc|2|DEBUG] [bus] onCallback name=sxs:SetSetting callId=341 data~={"callId":341,"result":true,"action":"ReturnCall"}
[2019-05-17 06:59:56.482|1|api-svc|2|DEBUG] [bus] onCallback name=sxs:SetSetting callId=342 data~={"callId":342,"result":true,"action":"ReturnCall"}
[2019-05-17 06:59:56.483|1|data-api|3|DEBUG] [ProductInsight]Token: ****************************b860 - Event: RequestReceived - Attributes: {"AppKey":"***","EndPoint":"TimeSeries","API":"Eikon Data APIs"}
[2019-05-17 06:59:56.483|1|data-api|3|DEBUG] Received new usage tracking request for event RequestReceived
[2019-05-17 06:59:56.484|1|data-api|3|DEBUG] Sending usage tracking payload {"Target":"/UsageTracking","RequestType":"send","Method":"EventRawData","MethodParam":{"EventName":"RequestReceived","EventProperties":"{\"AppKey\":\"***\",\"EndPoint\":\"TimeSeries\",\"API\":\"Eikon Data APIs\"}","ProjectToken":"15e63777ca524c08aa38b2b984dcb860"}} on EikonBus channel /UsageTracking
[2019-05-17 06:59:57.544|1|data-api|2|DEBUG] [UdfClientLoggingDecorator]UDF Transaction ID: undefined
[2019-05-17 06:59:57.546|1|data-api|0|WARN] [UdfClientLoggingDecorator]UDF returned status code 401 (undefined) - An error may have occured on server side - Returning code and message as-is to the client.
[2019-05-17 06:59:57.554|1|data-api|3|DEBUG] [Throttling][Request #f29d4e1c-329b-49ed-a80e-69da7c35c46c] [DVBT] Limit: 5000000.00 KB - Step: 0.00 KB - Sum: 0.00 KB - Remaining: 5000000.00 KB - Request rejected: false
[2019-05-17 06:59:57.557|1|data-api|3|DEBUG] [Throttling][Request #f29d4e1c-329b-49ed-a80e-69da7c35c46c] [VBT] Limit: 50000.00 KB - Step: 0.00 KB - Sum: 0.00 KB - Remaining: 50000.00 KB - Request rejected: false
[2019-05-17 06:59:57.560|1|data-api|3|DEBUG] [SettingsAggregatorService]Saving setting value - Name: APIPROXY.THROTTLING.STORE, Value: {"dailyRequest":"[[\"127.0.0.1\",[[1558044000000,1],[1557957600000,62]]]]","dailyVolume":"[[\"127.0.0.1\",[[1557957600000,1933799]]]]"}
[2019-05-17 06:59:57.562|1|data-api|3|DEBUG] [SettingsAggregatorService]Saving setting value - Name: APIPROXY.THROTTLING.STORE, Value: {"dailyRequest":"[[\"127.0.0.1\",[[1558044000000,0],[1557957600000,62]]]]","dailyVolume":"[[\"127.0.0.1\",[[1557957600000,1933799]]]]"}
[2019-05-17 06:59:57.565|1|api-svc|2|DEBUG] [bus] channel=/desktopsxs name=sxs:SetSetting callId=343 data={"settingName":"APIPROXY.THROTTLING.STORE","provider":"Configuration","settingValue":"{\"dailyRequest\":\"[[\\\"127.0.0.1\\\",[[1558044000000,1],[1557957600000,62]]]]\",\"dailyVolume\":\"[[\\\"127.0.0.1\\\",[[1557957600000,1933799]]]]\"}","action":"SetSetting"}
[2019-05-17 06:59:57.567|1|api-svc|2|DEBUG] [bus] channel=/desktopsxs name=sxs:SetSetting callId=344 data={"settingName":"APIPROXY.THROTTLING.STORE","provider":"Configuration","settingValue":"{\"dailyRequest\":\"[[\\\"127.0.0.1\\\",[[1558044000000,0],[1557957600000,62]]]]\",\"dailyVolume\":\"[[\\\"127.0.0.1\\\",[[1557957600000,1933799]]]]\"}","action":"SetSetting"}
[2019-05-17 06:59:57.573|1|api-svc|2|DEBUG] [bus] onCallback name=sxs:SetSetting callId=343 data~={"callId":343,"result":true,"action":"ReturnCall"}
[2019-05-17 06:59:57.575|1|api-svc|2|DEBUG] [bus] onCallback name=sxs:SetSetting callId=344 data~={"callId":344,"result":true,"action":"ReturnCall"}

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
39.4k 77 11 27

@Mehdi
Thank you, but I'm afraid this log is not what I was asking for in my last reply. What I was hoping to get from you is the Fiddler capture, just like the one you provided in this post. Unfortunately the Fiddler capture you provided previously may have been contaminated by an outage we experienced the day you took the capture. In the Fiddler capture you provided I cannot isolate the recurring problem you experience daily from the effects of the temporary outage we had. This is why I'm asking if you could take another Fiddler capture now that the outage is resolved and now that it cannot contaminate the capture.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
31 2 0 5

Alex,

here is the Fiddler output for today as it failed again. Can you please have a look as soon as possible?

REQUEST:

Header:

POST /Apps/UDF/MSF HTTP/1.1
Accept-Encoding: gzip, deflate
Content-Type: application/json
x-tr-applicationid: APIPROXY.***
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; Tablet PC 2.0; Thomson Reuters File Download 6.0)
Host: emea1.apps.cp.thomsonreuters.com
Content-Length: 195
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: iPlanetDirectoryPro=AQIC5wM2LY4SfcwT%2Bsm%2BodZon8BmDS3vH0K2znccdF47m5s%3D%40AAJTSQACMTAAAlNLABMxMDQ5ODcyNzM5MjIyMzM1Njg5AAJTMQACMjY%3D%23; EIKON_USER_AGENT="NET45,EIKON9.0.47109,SR0,ADF6.20184.11.20"

TextView:

{"Entity":{"E":"TimeSeries","W":{"rics":[".HFRXGL"],"fields":["CLOSE","TIMESTAMP"],"interval":"daily","startdate":"2019-03-23T00:00:00","enddate":"2019-05-21T00:00:00","calendar":"tradingdays"}}}

Auth:

No Proxy-Authorization Header is present.

No Authorization Header is present.

Cookies:

Request sent 200 bytes of Cookie data:

iPlanetDirectoryPro=AQIC5wM2LY4SfcwT%2Bsm%2BodZon8BmDS3vH0K2znccdF47m5s%3D%40AAJTSQACMTAAAlNLABMxMDQ5ODcyNzM5MjIyMzM1Njg5AAJTMQACMjY%3D%23
EIKON_USER_AGENT="NET45,EIKON9.0.47109,SR0,ADF6.20184.11.20"

Raw:

POST https://emea1.apps.cp.thomsonreuters.com/Apps/UDF/MSF HTTP/1.1
Accept-Encoding: gzip, deflate
Content-Type: application/json
x-tr-applicationid: APIPROXY.***
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; Tablet PC 2.0; Thomson Reuters File Download 6.0)
Host: emea1.apps.cp.thomsonreuters.com
Content-Length: 195
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: iPlanetDirectoryPro=AQIC5wM2LY4SfcwT%2Bsm%2BodZon8BmDS3vH0K2znccdF47m5s%3D%40AAJTSQACMTAAAlNLABMxMDQ5ODcyNzM5MjIyMzM1Njg5AAJTMQACMjY%3D%23; EIKON_USER_AGENT="NET45,EIKON9.0.47109,SR0,ADF6.20184.11.20"

{"Entity":{"E":"TimeSeries","W":{"rics":[".HFRXGL"],"fields":["CLOSE","TIMESTAMP"],"interval":"daily","startdate":"2019-03-23T00:00:00","enddate":"2019-05-21T00:00:00","calendar":"tradingdays"}}}

RESPONSE:

Header:

HTTP/1.1 501 Not Implemented
Server: Varnish
Content-Type: text/plain
Content-Length: 19
Accept-Ranges: bytes
Date: Wed, 22 May 2019 05:48:52 GMT
X-Varnish: 1697544920
Age: 0
Via: 1.1 varnish
Connection: close
X-TR-Varnish-Server: DTCP-ERPCPRP01
X-Varnish-Cache: miss
Set-Cookie: iPlanetDirectoryPro=;Path=/

Auth:

No Proxy-Authenticate Header is present.

No WWW-Authenticate Header is present.

Raw:

HTTP/1.1 501 Not Implemented
Server: Varnish
Content-Type: text/plain
Content-Length: 19
Accept-Ranges: bytes
Date: Wed, 22 May 2019 05:48:52 GMT
X-Varnish: 1697544920
Age: 0
Via: 1.1 varnish
Connection: close
X-TR-Varnish-Server: DTCP-ERPCPRP01
X-Varnish-Cache: miss
Set-Cookie: iPlanetDirectoryPro=;Path=/

501 Not Implemented

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
39.4k 77 11 27

@Mehdi
Thanks for the capture. It's exactly what I was looking for.
It appears that the token in this request is either invalid or expired. Could you confirm that your Eikon is still online before you send the request by opening a Quote or a Chart app and entering a RIC, say "EUR=" or ".HFRXGL"? I'm trying to ascertain that your Eikon application behaves normally when you experience the problem retrieving data from Eikon using Eikon Data APIs.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
31 2 0 5

Alex,

Eikon Desktop is always up and running when i try to run these queries. I just tried it again, all RICs tick on quotes and charts. The code fails with exactly the same Error code 401. I have to shut down Eikon and restart it to get my python code running without this. Something must be happening overnight

Is there a chance to share my screen with someone from Refinitiv to try to solve this problem real time instead of playing ping pong for now almost 3 weeks without any concrete solution to my problem?

Thank you for your help.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Hi @Mehdi,
A screen sharing session would be useful if we knew what to look for. However in this case I'm afraid we don't. We've never see the behavior you describe before. The error is generated by the backend, but the root cause of the issue could potentially be on the backend, on the desktop or anywhere in between. As we're investigating the issue we're checking all the scenarios and validating the hypotheses as they come up. I'm afraid this inevitably means going back and forth, and asking additional or clarifying questions. I can assure you that we're working on the problem you reported and are investigating it as expeditiously as possible.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.