I’m trying out HiveMQ free tier (serverless) with ESP32 microcontroller - using this MQTTClient library - Arduino Client for MQTT. I understand the free tier provides below:
You are currently on a Free plan.
- 100 IoT device connections.
- 10 GB traffic per month.
- Up to 3 days data retention time.
- 5 MB message size.
However, something went wrong with my application and it started sending ~60 MQTT messages per minute (using the same client connection session, as I’m not disconnecting the connection in my application until the ESP32 is powered down). It went on that way for ~35mins and after I started getting
*-2 : MQTT_CONNECT_FAILED - the network connection failed*
After restarting the microcontroller the messages were sent successfully to the broker.
Question: Is there any limit on number of messages a client can send (per min or hour etc.) after which the client is temporarily blocked? Is there some kind of rate limit number of messages that can be sent per client session per minute/hour etc?
Tried looking up documentation and couldn’t find any.
Hello @Gmrock321 ,
Thank you for the outreach, and first of all, welcome to the HiveMQ Community!
To start with your original question - there is not, as of this time, a message rate limitation. Specifically, the limitation placed on the ‘Free’ plan is based on the monthly data limit, rather than a maximum throughput limitation. For the Serverless (free) plan, this is 10GB/month.
As for the client disconnect, this may be due to a number of different factors - namely, that the client may have not responded to Keep-Alive MQTT behavior, failing to send a control packet, though the consistent publish messaging should have maintained the connection with the broker. Were these messages sent consistently, all the way up until connection termination? If you happen to have any additional logs or error messages to share, we would be happy to assist further, as well.
Let us know if there is any additional assistance we can provide, questions we can answer, or any additional clarification we can offer!
Aaron from the HiveMQ Team
Thanks for the response and confirmation that there are no rate limits, @AaronTLFranz.
Were these messages sent consistently, all the way up until connection termination?
Yes, the messages were delivered right until the client started receiving -2 error code which is
*-2 : MQTT_CONNECT_FAILED - the network connection failed*.
namely, that the client may have not responded to Keep-Alive MQTT behavior
Even if client failed to respond to keep-alive request, in my code, I’m trying to reestablish connection - that is when it was encountering -2 error code. So that shouldn’t matter, correct?
If you happen to have any additional logs or error messages to share, we would be happy to assist further, as well.
Don’t have additional logs as my application keeps trying to reconnect every 5seconds. I have deployed the application with additional logic to check if ESP32 is able to ping some other website (at the time it’s unable to establish connection with the broker).