For example, when using Tether Utils, a disconnection will trigger an error and the client (rumqttc) will in fact reconnect, but all subscriptions will be lost, which may be unclear for the user.
First thing should be to pass on the Error back to the application, so that it can be dealt with (even if that simply means throwing an Error and/or crashing).
Alternatively, the Base Agent should re-subscribe if needed.