We are using Refinitiv Data Library for .NET (via nuget package Refinitiv.Data.Content).
Lately we have found an issue that some subscriptions transition into the "Closed" state and are not receiving further updates.
The strange thing is that we are apparently receiving status update messages that belong to other IPricingStreams.
We open stream subscriptions registering callback actions for refreshes, updates, and status changes:
var pricingDefinition = Pricing.Definition(ticker).Closure(subscriptionId);
var pricingStream = pricingDefinition.GetStream(activeSession)
.OnRefresh((ric, msg, stream) =>
{
...
})
.OnUpdate((ric, msg, stream) =>
{
...
})
.OnStatus((ric, msg, stream) =>
{
...
});
We have registered logging via Refinitiv.Data.Log.Level (set to Trace).
This is an excerpt from the logs highlighting the issue:
1) Opening a stream for '.EVAS':
2023-01-24T14:47:33 Debug Refinitiv.Data.Delivery.Stream.OMMConnection Stream request "SendMessageAsync": "{
"ID": 2,
"Streaming": true,
"Key": {
"Name": ".EVAS"
},
"View": [
"ACTIV_DATE",
"TIMACT"
]
}"
From then one, we do receive .EVAS updates as expected.
2) Hours later, we try to open a non-streaming IPricingStream for '0#FDX' (note that this is a non-existent ric):
2023-01-25T07:44:30 Debug Refinitiv.Data.Delivery.Stream.OMMConnection Stream request "SendMessageAsync": "{
"ID": 9,
"Streaming": false,
"Key": {
"Name": "0#FDX"
}
}"
3) We do get back an error status, HOWEVER this is sent via the actions registered for the .EVAS stream opened a day before. We would expect it to be sent through the actions registered in the '0#FDX' subscription!
2023-01-25T07:44:30 Debug Refinitiv.Data.Delivery.Stream.OMMConnection Status response: "{
"ID": 2,
"Type": "Status",
"Key": {
"Service": "IDN_FD3",
"Name": "0#FDX"
},
"State": {
"Stream": "Closed",
"Data": "Suspect",
"Code": "AlreadyOpen",
"Text": "Request Rejected: Cannot request new item on open stream."
}
}"
From this point onwards, no updates will be received for .EVAS anymore.
We also get this log callback:
2023-01-25T07:44:30 Error Refinitiv.Data.Delivery.Stream.OMMStreamCache Internal error locating ID: 2 for duplicate requested item: [.EVAS]
"AlreadyOpen" and "Cannot request new item on open stream" sound suspicious. Can you please confirm if this is a server side or API error?
We are using Eikon 4.0.60 (4.0.60018) by the way.