Eikon python API not responding

I have a function that runs and pulls in Benchmark Yields (I.e. US1YT=RR, EU10YT=RR, etc) for a list of 100 currencies. Currently, the function is freezing randomly in the data pull request stage from ek.get_data() where no error message or data is returned. The code is just running with no response. This occurs randomly throughout the list of 100 currencies. For example, on one run, it will freeze on currency 10, on another, currency 99, on another currency 46.


Is there something going on with the Eikon python api or server?

Best Answer

  • Alex Putkov.1
    Alex Putkov.1 ✭✭✭✭✭
    Answer ✓

    I don't think a new app key is what resolved the problem.

    Fiddler by default captures all HTTP requests going on the wire from your machine. If you start experiencing the issue again, you need to find the specific request that corresponds to the get_data call that didn't return. In your case you're looking for POST requests to https://amers1.apps.cp.thomsonreuters.com/Apps/UDF/MSF. Using the inspectors tab in Fiddler you can view the JSON body of the request and compare the payload to the argument values of the get_data method to match get_data call to the HTTP request.

Answers

  • Update: The "Request Timeout" error message is being received AFTER the function is manually cancelled. Until this occurs, the eikon api returns no response which causes the code to run infinitely as it is waiting on a response from the api.

  • Solution: Step 1) Run a eikon system test and see if Data Retrieval tests fail.

    Step 2) If step 1 tests fail, clear cache.

    Step 3) Problem should be solved. Re-run function and be happy.

  • Alex Putkov.1
    Alex Putkov.1 ✭✭✭✭✭

    @Market_Risk

    The best way to troubleshoot the issue you described is to use Fiddler to capture the HTTP request corresponding to the get_data call that does not return. Fiddler will tell you the status of the HTTP request. With that information we can then see where the problem is: whether it's on the backend or the front end (or both).