90004: Channel backlog too large

channel_backlog_too_large

The client requested to resume or rewind a channel whose backlog held more messages than a single replay can deliver. The channel attaches, but the messages beyond that limit are not replayed.

What you should do

The channel stays attached and keeps delivering new messages, so nothing is broken. Whether to act on the messages that weren't replayed depends on your application:

  • If it can tolerate missing them, no action is needed and the error can be ignored.
  • If it cannot tolerate missing them, enable persistence on the channel and have your application fetch the messages it did not receive from history whenever it encounters this error.

Why it happens

When a client resumes or rewinds a channel, Ably replays the messages published in the requested range. There is a limit on how many it can replay at once. If the range holds more than that, Ably delivers the most recent messages up to the limit, and the older ones beyond it are not replayed.

This is most likely on high-throughput channels, or when recovering over a long or busy period — for example a rewind covering more messages than the limit.

What you'll see

The error is reported with code 90004 and HTTP status 404, with the message Unable to recover channel (message limit exceeded).