Open
Description
It is a very narow corner case but stil it breaks the client and renders it unusable.
- coreMQTT client is running on an embedded device, it subscribed to a topic with QoS2.
- The issue happens when a message is received and then the device reboots (for unrelated to coreMQTT reasons).
- When it boots again and re-connects to the broker it immidiately receives MQTT_PACKET_TYPE_PUBREL but since the device was rebooted the library has no knowleadge of the packet it received before, outgoingPublishRecords is empty and MQTT_ProcessLoop returns MQTTBadResponse.
Q: How would you suggest to handle a situation like this? There are no public functions in the library to get the failed packet id and to get access to outgoingPublishRecords structure that one could simply inject a record with id and MQTT_PACKET_TYPE_PUBCOMP type to let go that record. In the corner case like this I guess it's ok to lose the record since not much you can do if device reboots.
Metadata
Metadata
Assignees
Type
Projects
Status
🆕 Input Queue