.NET Refinitiv.Data - [PlatformSessionCore] RDP Authentication failed

Hi,

We have a .NET service running 24/7 based on the library provided by LSEG, specifically Refinitiv.Data version 1.0.0-beta5.

There was a problem that occurred on Monday, as we could not open session on our app start.

We got the below Exception that we do not have control over.

How can we control such scenario or similar ones?


 [WARN ] [ 44] [PlatformSessionCore] RDP Authentication failed

System.Threading.Tasks.TaskCanceledException:
The request was canceled due to the configured HttpClient.Timeout of 100
seconds elapsing.

 ---> System.TimeoutException: A task was
canceled.

 --->
System.Threading.Tasks.TaskCanceledException: A task was canceled.

   at
System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken
cancellationToken)

   at
System.Net.Http.HttpConnectionPool.HttpConnectionWaiter`1.WaitForConnectionAsync(Boolean
async, CancellationToken requestCancellationToken)

   at
System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage
request, Boolean async, Boolean doRequestAuth, CancellationToken
cancellationToken)

   at
System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean
async, CancellationToken cancellationToken)

   at
System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage
request, HttpCompletionOption completionOption, CancellationTokenSource cts,
Boolean disposeCts, CancellationTokenSource pendingRequestsCts,
CancellationToken originalCancellationToken)

   --- End of inner exception stack trace ---

   --- End of inner exception stack trace ---

   at
System.Net.Http.HttpClient.HandleFailure(Exception e, Boolean telemetryStarted,
HttpResponseMessage response, CancellationTokenSource cts, CancellationToken
cancellationToken, CancellationTokenSource pendingRequestsCts)

   at
System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage
request, HttpCompletionOption completionOption, CancellationTokenSource cts,
Boolean disposeCts, CancellationTokenSource pendingRequestsCts,
CancellationToken originalCancellationToken)

   at
Refinitiv.Data.Core.GrantPassword.AuthorizeAsync(Boolean takeExclusiveControl,
CancellationToken cancellationToken)

   at
Refinitiv.Data.Core.PlatformSessionCore.PerformOpenTasksAsync(CancellationToken
cancellationToken)

Best Answer

  • Hello @lukasz.druczak

    In this case, the service tried to open a platform session and during authentication the backend did not respond in time and the call received a 100 second timeout, cancelling the working task.

    Refinitiv.Data.Core.PlatformSessionCore.PerformOpenTasksAsync(CancellationToken cancellationToken)
    Refinitiv.Data.Core.GrantPassword.AuthorizeAsync(Boolean takeExclusiveControl, CancellationToken cancellationToken)

    The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing

    The session never Opened, because if you fail authentication for whatever reason, it goes from Pending to Closed. On the library level we do not control the back-end availability. Regarding control, you could implement a retry mechanism where for a given definition you can try reconnecting multiple times.


    Given your case, we would like you to answer some question that could help us understand this issue better:

    - Did the session eventually connect?

    - How long did this go on for and how frequent is this issue?

    - Could you please provide a code sample so we can attempt to recreate this scenario?


    Best regards,

    Baciu Wahl Cristian