When subscribing to a stream, StatusMsg almost always comes with a state. I've just come across a message that didn't have a state (StatusMsg.hasState() is false). How and why are they triggered and how should they be handled? Does the lack of state mean that there're no state changes, e.g. if stream and data state were good prior to the arrival of the message, then the stream and data should be assumed to be good, and if they were bad prior to that, then they should be assumed to be bad?
Refer to the EMA RDM Usage Guide, the State is optional.
A status message can convey:
Therefore, if there is no state in the status message, it may indicate changes in permission information or item group. You can enable tracing in the EMA Java to verfiy the status message.