Errors

too_early

The required window has not opened yet; wait some blocks and retry

View as Markdown

The call arrived before its window opened: a reveal before the reveal period, a coldkey swap before its delay elapsed, a start_call before enough blocks passed, or a finalization before the period ended.

Unlike rate_limited this is not about calling too often — the flow has a built-in waiting period that has not elapsed yet. wait the required blocks and retry; the chain state (announcement block, commit block) tells you how long is left.

Remediation

The required window has not opened yet; wait some blocks and retry

Chain errors

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

Chain errorDescription
AdminActionProhibitedDuringWeightsWindowAn owner or admin hyperparameter change was attempted inside the protected freeze window just before the subnet's epoch runs. Check AdminFreezeWindow and the blocks remaining until the next epoch (subnet tempo), then retry after the epoch fires.
AllNetworksInImmunityCreating a new subnet required pruning an existing one, but every candidate subnet is still inside its network immunity period so none can be dissolved. Check NetworkImmunityPeriod and each subnet's NetworkRegisteredAt, and retry once a subnet leaves immunity.
CannotReleaseYetrelease_deposit was called too early: the current block must exceed the deposit's block plus ReleaseDelay, and safe-mode must be exited. Check the block key of the entry in Deposits against the ReleaseDelay config.
CapNotRaisedfinalize was called before the crowdloan's raised amount equals its cap. Compare the raised and cap fields of the Crowdloans entry; contribute the remainder or lower the cap with update_cap before finalizing.
ColdkeySwapClearTooEarlyThe swap announcement cannot be cleared until the reannouncement delay after the announcement's execution block has passed. Compare the current block with the when stored in ColdkeySwapAnnouncements plus ColdkeySwapReannouncementDelay and retry later.
ColdkeySwapReannouncedTooEarlyannounce_coldkey_swap was called again before the reannouncement delay after the previous announcement's execution block elapsed. Compare the current block with the stored announcement time plus ColdkeySwapReannouncementDelay and retry later.
ColdkeySwapTooEarlycoldkey_swap was executed before the announcement delay had elapsed since announce_coldkey_swap. Check the execution block stored in ColdkeySwapAnnouncements (announcement time plus ColdkeySwapAnnouncementDelay) and wait until then.
ContributionPeriodNotEndedThe operation requires the crowdloan's contribution period to be over, but the current block is still before the crowdloan's end block. Compare the end field of the Crowdloans entry for the crowdloan_id with the current block number.
LeaseHasNotEndedThe lease termination was attempted before the lease's end_block was reached. Compare the current block height with the end_block stored in SubnetLeases for the lease id and retry after it passes.
MigrationInProgressA multi-block storage migration of the contracts pallet is still running, so other extrinsics of the pallet are rejected until it completes. Check the migration status in storage and retry once done, or submit migrate calls to advance it.
MultiBlockMigrationsOngoingRuntime code replacement is blocked while a multi-block migration is still executing. Wait for the ongoing migrations to complete (check the multi-block migrations cursor) before retrying set_code or the authorized upgrade.
NeedWaitingMoreBlocksToStarCallThe subnet owner called start_call before enough blocks had passed since the subnet was registered. Compare the current block with NetworkRegisteredAt for the netuid plus the start-call delay and retry once the window opens.
NotReadyToDissolvedissolve was called while outside contributions remain: the crowdloan's raised amount still exceeds the creator's own contribution. Call refund until only the creator's Contributions entry remains and equals raised in the Crowdloans record.
PriceConditionNotMetThe subnet's current alpha price does not satisfy the order's trigger: buys and stop-losses require price at or below limit_price, take-profits at or above it. Compare current_alpha_price for the order's netuid, scaled by 1e9, with the limit_price field.
RevealTooEarlyA weight reveal was submitted before the commit's reveal window: the current epoch must equal the commit epoch plus the reveal period. Check the commit in WeightCommits and the subnet's RevealPeriodEpochs, then wait for the reveal epoch.
StartCallNotReadystart_call was made before StartCallDelay blocks elapsed since the subnet was registered. Compare the current block against NetworkRegisteredAt for the netuid plus StartCallDelay, and wait for the remainder.
UnannouncedThe proxied call was executed before its announcement matured, or no matching announcement exists at all. Check the proxy's Announcements entry for the call hash and the delay on the proxy registration; enough blocks must elapse between announce and proxy_announced.
WaitingForDissolvedSubnetCleanupThe operation is blocked while a dissolved subnet's storage is still being torn down in the background. Check the DissolveCleanupQueue and retry after the on-idle cleanup for that netuid completes.

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