Status Stream closed message with "Timeout" Code ?

We are receiving stream closed status message with "timeout" code few times.

Could you please suggest what does it mean and how best we can recover after receiving this message?

{

"ID": 1,
"Type": "Status",
"Domain": "Login",
"Key": {

"Name": "AQIC5wM2LY4SfcyQZKRDTOqVOwA16STH0djM%2FLFEWvHG8k0%3D%40AAJTSQACMjAAAlNLABQtNzMwNTYzMjgyMjcwMDIwMDQ5NwACUzEAAjMy%23"
},
"State": {

"Stream": "Closed",
"Data": "Suspect",
"Code": "Timeout",
"Text": "TREP authentication token has expired."
}

Best Answer

  • wasin.w
    wasin.w admin
    Answer ✓

    Hello @cbhavsar,

    I have checked a given re-login message, the message is a valid JSON OMM format.

    The all JSON messages between the application and ERT in cloud (since the EDP request and first login) will let me verify the your messages flow that encounters the problem in detail.

    In the mean time, I suggest you raise a support ticket via My.Refinitiv Support - so they can confirm / investigate if their is an issue on the EDP/ERT in Cloud service

Answers

  • Hello @cbhavsar,

    I am assuming that you are connecting to ERT in Cloud. If so, the each EDP login session will be expired in the "expire_in" value second.

    Example: The expire_in value is 300, it means this access_token and Login will be valid for 300 seconds.

    {
    "access-token": "<access_token>",
    "expires_in": "300",
    "token_type": "Bearer",
    "scope": "trapi",
    "refresh_token": "<refresh_token>"
    }

    Before expires_in is reached, the customer application is required to request a new <access_token> from the EDP gateway with the previously received refresh_token, username, and grant_type. The EDP gateway responds back to the customer application with a new access_token, expires_in, and refresh_token. Based on the new <access_token>, the client application is required to "reissue" to the ERT in Cloud streaming connection. This varies per connection type as above.

    For the WebSocket, the reissue means send a new Login JSON message with the following conditions

    • same ID
    • new AuthenticationToken value (from a new access_token)
    • Refresh attribute value False
    • Send before expires_in is reached

    You can see an example of how to handle this expires_in and reissue a refresh_token in the ERT in Cloud example (available in Python, Java and C# languages) in the download page.

  • We are already doing this. but still, I get this status msg.

    just for information, when I tried last refresh login attempt. I received Login state as "OK" which is strange, I do not get Login state as "OK" when we try refresh login request.

  • Hello @cbhavsar

    Can you give me the whole JSON messages (since the first EDP and ERT in Cloud login)? You may log them as a txt file and attach to this thread.

    Please remove your authentication information (username, password, etc) from the file too.

  • Hi,

    Yes we are connecting to ERT Cloud.

    Please find below message we are getting as JSON response

    {
    "ID": 1,
    "Type": "Status",
    "Domain": "Login",
    "Key": {
    "Name": "AQIC5wM2LY4SfcyQZKRDTOqVOwA16STH0djM%2FLFEWvHG8k0%3D%40AAJTSQACMjAAAlNLABQtNzMwNTYzMjgyMjcwMDIwMDQ5NwACUzEAAjMy%23"
    },
    "State": {
    "Stream": "Closed",
    "Data": "Suspect",
    "Code": "Timeout",
    "Text": "TREP authentication token has expired."
    }
    }

  • Hi Wasin,

    Please find below JSON message I send as Login refresh

    {
    "ID": 1,
    "Domain": "Login",
    "Key": {
    "NameType": "AuthnToken",
    "Elements": {
    "ApplicationId": "256",
    "Position": "10.75.2.20",
    "AuthenticationToken": "xxxxx"
    }
    },
    "Refresh ": false
    }

  • Hello @cbhavsar,

    I mean all messages between the application and EDP/ERT in Cloud, not just a re-login message.

  • Sorry, I did not capture all messages in log, I keep only login messages.