80020: Continuity lost as message delivery rate exceeded

connection_discontinuity_message_rate_exceeded

Messages were dropped because they were being delivered to the connection faster than its per-connection rate limit allows. Continuity is lost on the affected channels: they keep receiving new messages, but the dropped ones are not redelivered.

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

Each connection has a maximum rate at which Ably will deliver messages to it, set by your account's limits. When a connection is subscribed to more message traffic than that allows, Ably cannot deliver all of it, so it drops the excess and signals the gap to the affected channels as a continuity loss rather than silently skipping messages.

What you'll see

The affected channels report a continuity loss but stay attached. The error is reported with code 80020 and HTTP status 400, with a message of the form Continuity loss on channel as maximum server-to-client message rate exceeded; permitted rate = ....