Error Codes

The following error codes are used by the shiftr.io broker and triggered as 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 per namespace connection limit has been reached.

See Limitations to learn more about platform limits.

lock-timeout

The broker failed to acquire the global namespace lock.

The broker will acquire the global namespace 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 (general power switch) it may help to add a random delay on the firmware 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.