Hello,
I have been chasing this problem for some time, but it has been difficult to capture.
The issue occurs when the device is sitting idle (no eDRX or other power-saving modes are enabled). The MQTT ping timeout is set to 60 seconds, so the device always has an open connection to the server, and the server can send data to the device at any time. The network is LTE-M.
This setup is used for a smart lock application. Most of the time, it works well: in about 90% of cases, data is delivered to the modem in ~2.5 seconds, which is roughly the same as the mobile network paging cycle. Sometimes the delay is 5 seconds or more if some paging cycles are missed, which is also acceptable.
However, in some cases, the device is not reachable for 30 seconds or more. This happens in approximately 1% or less of cases, so it has been very difficult to capture.
In this trace, there are mainly two types of MQTT commands: commands/... and ping/..., as well as the actual MQTT PING packet. The ping/... MQTT command is used only for testing from the server side. The device to the commands/... responses with state/...
The problem occurred at the end of the trace, when two commands/... messages were received almost at the same time (approximately 1 second apart).
1. 19:50:23 Last ping/pong exchange completes (device RRC Connected)
2. RRC release → idle. Device camped on cell 002CDA12.
3. 19:50:38 Broker sends /command, the command needed paging from this moment
3. 19:50:38–19:50:57 ~19.4s: device hears nothing. No Service request, no paging response.
4. 19:50:56 second command is sent from Broker
5. 19:50:57 Service request, a page finally gets through
6. 19:50:58 Both Command's are delivered; device publishes two state/ replies.
Could you please take a look at this part of the trace and see if you can identify anything that could explain the delay?
Thank you!