I have a C++ program that posts RIC data to the TRCC using the Elektron SDK. v3.10.3. We've been running an automated posting service 24/7 for over a year. Saturday morning all posts began failing due to what appears to be a certificate error. I made no changes to the code at this time and my IT department says no facility changes were made.
The error occurs during the call to the OmmConsumer constructor. Here is the exception info:
Exception Type='OmmInvalidUsageException', Text='login failed (timed out after waiting 45000 milliseconds) for contrib1-amers1.platform.refinitiv.com:443)'
The program captures the SDK logging messages. Below is an example message. This text repeats several times until the attempt times out after 45 seconds.
Naomi at the help desk is researching server issues but she said I should post to the API forum. Even if this turns out to be a facility issue on one end or the other, are there any workarounds?
Text: Received ChannelDownReconnecting event on channel Channel_2
Instance Name Consumer_1_1
Error Id -1
Internal sysError 0
Error Location C:\Jenkins\workspace\ESDKCore_RCDEV\OS\VS140-64\rcdev\source\esdk\Cpp-C\Eta\Impl\Reactor\rsslReactorWorker.c:1132
Error Text <C:\Jenkins\workspace\ESDKCore_RCDEV\OS\VS140-64\rcdev\source\esdk\Cpp-C\Eta\Impl\Transport\ripcsslutils.c:1788> Certificate validation err
: Hostname mismatchOpenSSL Error string: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:ssl\statem\statem_clnt.c:1925:
Apologies. It's version 188.8.131.52
The error persisted for at least 48 hours, from early Saturday morning until at least end of day yesterday (Monday.) As of this morning it is working again. I made no changes and I have no explanation for the change.
If it was a time-limited scenario then it is most likely an issue with the RCC system or the related Authentication system. I will ask the RCC dev team if they are aware of any such issues over the weekend.
EMA has various recovery mechanisms in place - including the ability to use a ChannelSet and provide more than one Channel to try and connect to. If you have been provided with more than one contrib server address, I would recommend you create a ChannelSet if you are not already doing so.
Some articles you may find useful - (not RCC specific)