if I request an unavailable item (the service publishing has not yet started) I sometimes get State: CLOSED, SUSPECT, NOT_FOUND, "The record could not be found"; whereas on other services I get State: CLOSED, SUSPECT, NONE, "F10: Not In Cache"
I don't understand the difference here? How do I know if I should try resubscribing?
In RFA Java Developer Guide, chapter 10, please find all OMMState Data State Definitions, OMMState Stream State Definitions and OMMState Code State Definitions listed with explanations.
This defines the action you are suggested to take.
If stream is closed, one would have to find out what is wrong, and take action, prior to opening it again, whereas closed_recover suggest intermittent issue, reopen as is.
If the item is not found, one would need to see why it can not be found, if the instrument is misspelled, or invalid, or a short-lived instrument is expired.
F10 error and letter+number errors in general seen more seldom and come from infrastructure, they are conveyed via API to the client, this info is additional to the state info. I would first process the API state, as it is usually indicative of the action to take on the part of the consumer.
Does this info help?
The exact message you receive comes from the TREP system and is determined by the TREP infrastructure components / Provider applications - the API just passes along what it receives from the ADS server.
You can talk to your internal MDS team to see if they can explain the differences between the services. They may be configured differently by the MDS team and/or served by different types of Providers - and this could explain what you are seeing.