90008: Attach point too old for untilAttach history

attach_point_not_found

A history request using untilAttach relies on the channel's attach point still being among recent messages. In this case it was not, so the request could not be served and no messages were returned.

What you should do

Whether this matters depends on whether the channel has persistence enabled.

Without persistence, there is nothing to do and the error can be ignored. The client already has all recent messages, because it has received everything since its attach point and that point is older than the recent window. The older history untilAttach would have returned is not retained, so there is nothing more to recover.

With persistence, the older history untilAttach would have returned is retained, and can be fetched with a plain history request without untilAttach. That response won't line up exactly with the messages the client already received from the channel, so choose how to reconcile them:

  • Remove duplicates yourself. Discard any messages in the response that the client already received. This keeps a gap-free record but your application has to deduplicate.
  • Accept possible duplicates. Less work, but some messages may appear both in the response and among those already received.
  • Leave the older messages out. If the client does not need them, continue with only the messages it already received.

Which is best depends on whether duplicate messages or missing history is worse for your use case.

Why it happens

untilAttach returns history up to the attach point, and it works from Ably's window of recent messages — about two minutes. It can therefore only serve an attach point that still falls within that window.

This error means the attach point was older than that, so untilAttach could not use it. The messages themselves are unaffected; whether the older ones can still be retrieved depends on the channel's persistence.

What you'll see

The whole request fails and no messages are returned. The error is reported with code 90008 and HTTP status 400, with the message Unable to get channel history: attach point not found.