My connected clients are not receiving all their subscribed to messages

Dropped or missing messages can occur for several reasons. First thing to check is if the publishing connections are active and publishing all the required messages to the broker. You can check the connection status of a publishing client via the HiveMQ Control Center. 

If the publishing client status is as expected then you should check the client’s subscriptions and message queues. The broker can queue up to 1000 messages for each client. Once a client’s queue is full, any new messages will be dropped until the queue reduces. If you’re using HiveMQ Cloud Professional or Enterprise then you can view dropped message statuses via HiveMQ Control Center.

Check the connection state of the client

Navigate to the Control Center and select the Clients view. Generate a new Snapshot and search for the client using its client ID. If the client is not listed then the client does not have a connection with the cluster. In this case please review your Client configuration and double check, if all settings are up to date.

Check the (shared) subscriptions of the client

If you are able to find the client in the list of available clients, open the client details by selecting the client from the list. If you scroll down in the details view you will see a list of topics the client is subscribed to. Please check if the client has subscribed to all topics you would expect. If you miss a subscription, simply add it via the Control Center and the client will be subscribed automatically to this topic. 

Check if there are currently messages queued for the client

If the client is listed on the broker and is subscribed to all expected topics, it can be that currently messages are queued on the broker for this client. This can happen if the client is connected, but messages are arriving faster than the client can consume, or if the client holds a persistent session but is currently not actively connected with the broker. Navigate to the Clients view, refresh the snapshot if you haven’t done so far and search for the client using its Client ID. The overview list will display how many messages are currently queued for this client under Queue Size > Current. It also gives you a hint how much space is left in the client queue until the broker will start dropping messages, if the client does not process the queued messages.

Check the status of dropped messages

Navigate to the Control Center dashboard and select the Dropped Messages statistics along the top row of key statistics. This will update the big view on the counter and indicates if there are dropped messages on the broker or not. If you see dropped messages, navigate to the  Analytics view and select Dropped Messages view where you can see dropped messages by reason and client. Note, the Analytics view is only available in HiveMQ Cloud Professional and Enterprise.