Errors

rate_limited

Wait for the rate-limit window to pass, then retry

View as Markdown

The chain enforces per-key rate limits on certain calls (registration, weight setting, stake movement, child hotkey changes) to keep the network stable.

The limit is measured in blocks since the same key last performed the same kind of call, so retrying immediately will fail with the same error. wait for the window to pass (typically a few blocks to a few hundred blocks depending on the call), then retry.

Remediation

Wait for the rate-limit window to pass, then retry

Chain errors

The exact chain error names (from the extrinsic receipt) that classify to rate_limited; the description says what triggered the failure and where to check. Each name has its own page:

Chain errorDescription
AddStakeBurnRateLimitExceededThe add-stake-and-burn operation was submitted again before its per-key rate-limit window elapsed. Wait some blocks and retry; no active raise site exists in current code, so this mainly appears on older runtimes.
CommittingWeightsTooFastThe neuron committed weights again before the per-UID rate limit elapsed since its last commit on that subnet. Compare blocks since the last commit against the weights_rate_limit hyperparameter (btcli sudo get --netuid <n>) and wait.
DelegateTxRateLimitExceededThe delegate changed its take again before the per-hotkey take-change rate limit elapsed. Compare blocks since the hotkey's last take transaction against the TxDelegateTakeRateLimit storage item and retry later.
EvmKeyAssociateRateLimitExceededassociate_evm_key was called again before the per-UID rate limit since the last association elapsed. Compare blocks since the association recorded in the AssociatedEvmAddress storage against the EvmKeyAssociateRateLimit runtime constant and retry later.
HotKeySetTxRateLimitExceededThe coldkey attempted a hotkey set/swap before TxRateLimit blocks had passed since its last such transaction. Check the coldkey's last transaction block against the TxRateLimit storage value and wait the remaining blocks.
HotKeySwapOnSubnetIntervalNotPassedA hotkey swap on a subnet was attempted before HotkeySwapOnSubnetInterval blocks passed since the coldkey's last swap on that netuid. Compare LastHotkeySwapOnNetuid for the coldkey with the current block and retry after the interval.
NetworkTxRateLimitExceededThe coldkey attempted register_network again before the network registration rate limit elapsed since its previous registration. Check the coldkey's last register-network block against the NetworkRateLimit storage value and wait the remaining blocks.
ServingRateLimitExceededserve_axon or serve_prometheus was called again before enough blocks passed since the neuron's last serving update. Check the axon's last update block in Axons against the ServingRateLimit (serving_rate_limit hyperparameter) and wait.
SettingWeightsTooFastThe neuron set weights again before WeightsSetRateLimit blocks elapsed since its last weight update on that subnet. Check the weights_rate_limit hyperparameter and the neuron's LastUpdate entry, then wait the remaining blocks.
SpaceLimitExceededThe commitment would push the account's byte quota for the current epoch over the cap; each set_commitment consumes at least 100 bytes. Check UsedSpaceOf for the netuid and account against MaxSpace, or wait for the next epoch to reset usage.
StakingRateLimitExceededStaking operations (add_stake, remove_stake, and similar) were submitted faster than the per-block staking rate limit allows for the hotkey-coldkey pair. Space the transactions out and retry in a later block.
SubnetBuybackRateLimitExceededA subnet buyback operation (staking TAO and immediately burning the acquired alpha, e.g. via add_stake_burn) was repeated within its rate-limit window. Wait for the window to pass before retrying the buyback.
TooManyRegistrationsThisBlockRegistrations in the current block already reached the subnet's per-block cap (MaxRegistrationsPerBlock, the max_regs_per_block hyperparameter); root registration enforces the same cap on netuid 0. Retry in the next block.
TooManyRegistrationsThisIntervalRegistrations in the current interval reached the cap of three times TargetRegistrationsPerInterval for the subnet. Compare RegistrationsThisInterval against that hyperparameter and wait for the next interval to start.
TooSoonA forced GRANDPA authority change was signalled too soon after the previous one. Check the Grandpa NextForced storage and wait until the current block passes it before signalling another forced change.
TxChildkeyTakeRateLimitExceededset_childkey_take was called again for the hotkey on this subnet before its rate-limit window elapsed. Check the block of the last childkey-take change against TxChildkeyTakeRateLimit and wait out the remainder.
TxRateLimitExceededAn owner or admin transaction (e.g. set_children, tempo or hyperparameter updates, setting the owner hotkey) was repeated within its rate-limit window for that key and subnet. Check when the same transaction type last succeeded and wait for the limit to pass.

The same explanation is available in the terminal: btcli explain rate_limited (or btcli explain <ChainErrorName> for one exact chain error).