Re-try and re-connect guidelines
Your devices and applications interacting with Bosch IoT Rollouts need to be able to bridge small interruptions or latencies. On the one hand, this requirement is imposed by the fact that we work with distributed systems, where short interruptions can result from a networking issue, a maintenance activity, or a service incident. On the other hand, your devices and application will also highly depend on the network services of other providers and should not break in case they are not able to keep connections with our infrastructure; at least for short time.
In order to be able to identify cases where your request might not have reached our service, we recommend orienting on the exception you might receive upon request. The status code returned by the Bosch IoT Rollouts service might help to indicate whether the failure is transient or not.
The following HTTP status codes typically indicate that a re-try is appropriate:
409 Conflict
429 Too Many Requests
500 Internal Server Error
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
No matter whether you request our service via the Bosch IoT Rollouts Management API or DDI API, in case of exceptions we provide the same status codes.
All usage of our APIs should apply a systematic approach for managing re-tries incl. an exponential back-off, as well as re-connects. This helps to avoid unnecessary load, that can become counterproductive.