42916: Per-connection outbound resume rate exceeded

rate_limit_exceeded_per_connection_backlog

Backlog messages were not delivered to a connection because the rate of delivering them exceeded its per-connection outbound limit. The client is notified of the gap by a channel continuity loss, which it receives as error 80020.

What you should do

What to do depends on whether your application can tolerate the gap:

  • If it can, no action is needed and the error can be ignored.
  • If it cannot, fetch the messages the connection did not receive from history when it encounters this error.

To stop hitting the limit, consider spreading subscriptions across more connections, so that each one receives fewer messages. If a connection genuinely needs to receive messages at a higher rate, you can request a higher limit.

Why it happens

After a connection reattaches to a channel, Ably replays the backlog of messages published while it was away. Each connection has a maximum rate at which Ably will deliver messages to it, set by your account's limits. If the backlog would be delivered faster than that, Ably drops the excess and signals the gap to the client. This code records that the limit was reached while delivering the backlog; the gap itself is reported to the client as 80020.

What you'll see

This code appears in your app's error statistics, recorded with HTTP status 429 and the metric connection.backlogRate. The client itself receives the continuity loss as error 80020.