This offer is only addressed to commercial customers including freelancers and entrepreneurs. All prices are exclusive of value added tax (VAT).
  • Share via email
  • Subscribe to blog alert

Bosch IoT Hub changes error handling behavior of MQTT adapter

With the latest update from 5th of May 2021 we have introduced a new functionality of the MQTT adapter with subscription to error-topics.

The MQTT adapter now lets devices subscribe on a new error topic to get informed about errors during the processing of telemetry, event or command response messages.

Current default behavior of MQTT adapter in case of non-terminal errors

MQTT adapter keeps the connection to the device open in case of non-terminal errors. If device has the subscription for error-topics an error message on the error topic is sent, the error is ignored and a PUBACK for the message that caused the error is sent.

MQTT adapter closes connection to the device only in case of terminal errors which are listed below:

  • The adapter is disabled for the tenant that the client belongs to.
  • The authenticated device or gateway is disabled or not registered.
  • The tenant is disabled or does not exist.

Future default behavior of MQTT adapter in case of non-terminal errors

Starting from 01.10.2021 when a device publishes a telemetry, event or command response message and there is an error by processing of the message, the handling of the error depends on whether there is an error topic subscription for the device and whether an on-error property bag parameter was set on the topic used for sending the message.

If no error subscription is in place and no on-error parameter was set, the default error handling behavior is to close the MQTT connection to the device. If the device has a subscription on the error topic (on the same MQTT connection the device uses for sending messages), the default behavior is to keep the MQTT connection open unless a terminal error happens.

Please consider the upcoming changes and configure your devices in an appropriate manner to achieve an expected and desired behavior by error handling.