103011: Push request rate limited by provider

push_rate_limited_by_provider

A push request was not completed because the push provider rejected it for exceeding a rate limit. FCM, for example, limits changes to topic subscriptions across each Firebase project, so the condition is usually temporary.

What you should do

Retry the request after a delay, backing off exponentially with jitter between attempts. When the response has a Retry-After header, wait at least that long.

When a request subscribes many devices at once, for example every device for a client ID, Ably retries the devices that were rate limited itself, so there is nothing to retry.

If the error persists, the requests sent to the provider are consistently above its limit. Spread the requests out over time rather than sending them in a burst.

Why it happens

Push providers limit how quickly requests can be made. FCM, for example, limits the rate of topic subscription changes for each Firebase project, so every app and device using the same project shares the limit. A burst of requests, such as many devices subscribing to a topic at once, can exceed it.

What you'll see

The error is reported with code 103011 and HTTP status 429. The message names the operation that was limited, such as fcm subscribe: rate limited; retry with backoff, followed by the provider's own message.