This error indicates you have hit a hard limit on your account, and the request you made has been rejected. The limit will only remain in effect until the period to which it applies has passed. For example, if the limit is an instantaneous per second rate limit, then typically the following second the limit will be lifted and you will be able to continue to publish messages.
The error message will typically indicate what limit you have hit. For example, take the following error message.
Rate limit exceeded; request rejected (nonfatal); metric = channel.maxRate; interval = 2018-01-05:10:10:3; permitted rate = 5000; current rate = 5015; scope = channel:[YOUR APP ID]:[YOUR CHANNEL] (status: 429, code: 42910) (code: 42910, http status: 429)
The metric which you have exceeded is channel.maxRate, which represents max instantaneous rate of messages allowed to be published on a channel per second.
To ensure Ably can provide continuity of service for all customers under all conditions, every account has a hard upper limit in regards to usage, either based on monthly, hourly or per second limits. Find out more about why we have hourly or per second rate limits on all accounts.
If you are in need of a higher rate per second, you can work out which package will allow you to have a high enough rate with our package calculator.