Error Codes
The following error codes are used by the shiftr.io broker and triggered as error events before the offending connection is closed or request is canceled.
read-timeout
The broker failed to read data from a client within the specified keep alive interval.
As specified by the MQTT 3.1.1 specification in section 3.1.2.10, a client must send data within the submitted keep alive interval. If there is not data to be sent, it must send a Pingreq
packet to prevent broker-side termination.
The shiftr.io broker applies a grace period of half the keep alive interval before terminating the connection.
client-id-limit
The specified client id exceeds the allowed length.
See MQTT Interface to learn more about interface limits.
connection-limit
The instance connection limit has been reached.
lock-timeout
The broker failed to acquire the global lock.
The broker will acquire the global lock for every connection to ensure connection attempts are handled sequentially. Many parallel connection attempts may prevent the broker from acquiring the lock in time and return this error.
In scenarios where many devices connect at the same time it may help to add a random delay to prevent too many parallel connection attempts.
replace-timeout
An existing connection did not close in time when being replaced.
If "Unique Client IDs" is enabled and a client connects with the same client id as an existing connection, the broker will attempt to replace the connection. It will trigger a close
action against the existing connection and wait until it has properly closed. If this takes longer than expected this error is triggered and the connection terminated.
topic-limit
The specified topic exceeds the allowed length.
See MQTT Interface or HTTP Interface to learn more about interface limits.
payload-limit
The specified payload exceeds the allowed length.
See MQTT Interface or HTTP Interface to learn more about interface limits.
no-write-access
The used token does not grant write access.
invalid-topic
The specified token contains invalid characters.
See MQTT Interface or HTTP Interface to learn more about interface limits.
subscription-limit
The per connection subscription limit has been reached.
See MQTT Interface to learn more about interface limits.
dynamic-rate-limit
The per user rate limit has been reached.
static-rate-limit
The per connection rate limit has been reached.
See MQTT Interface to learn more about interface limits.
queue-timeout
The client failed to consume a message in time.
invalid-action
The specified action is not valid.
connection-closed
The broker closed the connection per close request.