Errors

invalid_argument

Check the argument values against the operation schema

View as Markdown

An argument was rejected before or at submission: a malformed address, an out-of-range value, a bad signature, or an extrinsic the node refused to accept into its pool.

Check the argument values against the operation's schema (btcli tools prints the machine-readable catalog; --help on any command shows its parameters).

Remediation

Check the argument values against the operation schema

Chain errors

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

Chain errorDescription
AccountRejectsLockedAlphaLocked alpha was being transferred to a coldkey whose AccountFlags do not have the accept-locked-alpha bit set, e.g. during a lock transfer or coldkey swap of locks. Check the destination coldkey's AccountFlags storage and have the recipient opt in to receiving locked alpha before retrying.
ActivityCutoffFactorMilliOutOfBoundsThe factor_milli argument to set the activity-cutoff factor was outside the allowed 1000-50000 per-mille range (1 to 50 tempos). Adjust the argument to fall within those bounds before resubmitting.
ActivityCutoffTooLowAn admin tried to set the subnet's activity cutoff below the chain-wide minimum. Compare the requested value against the MinActivityCutoff storage item and current activity_cutoff in btcli sudo get --netuid <n>.
AlphaHighTooLowThe alpha_high argument to set liquid-alpha values was below the minimum of roughly 0.025 (1638/65535 in u16 units). Raise alpha_high in the sudo_set_alpha_values call; current values are in the AlphaValues storage per netuid.
AlphaLowOutOfRangeThe alpha_low argument to set liquid-alpha values was below the ~0.025 minimum (1638/65535) or greater than alpha_high. Choose alpha_low within that range and not exceeding alpha_high; current settings are in the AlphaValues storage for the netuid.
AmountTooLowA stake, unstake, move or swap amount was zero or its TAO equivalent fell below the minimum stake threshold after fees and slippage. Compare the amount against the DefaultMinStake storage item and the subnet's alpha price before retrying with a larger amount.
AnnouncedColdkeyHashDoesNotMatchThe new_coldkey passed to coldkey_swap hashes to a different value than the hash committed in the earlier announce_coldkey_swap. Verify the announced hash in the ColdkeySwapAnnouncements storage matches the BlakeTwo256 hash of the coldkey you are swapping to.
BadEncKeyLenThe enc_key passed to announce_next_key is not the exact ML-KEM-768 encapsulation key length (1184 bytes). Check the byte length of the enc_key argument before announcing.
BlockDurationTooLongThe requested end block is more than MaximumBlockDuration blocks after the current block. Compare end minus the current block number against the MaximumBlockDuration pallet constant when calling create or update_end.
BlockDurationTooShortThe requested end block is fewer than MinimumBlockDuration blocks after the current block. Compare end minus the current block number against the MinimumBlockDuration pallet constant when calling create or update_end.
CanNotSetRootNetworkWeightsset_weights was called with netuid 0, the root network, where normal weight setting is not allowed. Use a non-root netuid argument; root weights are handled by a separate mechanism.
CannotAddSelfAsDelegateDependencyA contract called lock_delegate_dependency with its own code hash, which is not permitted. Check the code hash argument passed to the delegate dependency API against the contract's own code hash.
CannotBurnOrRecycleOnRootSubnetrecycle_alpha or burn_alpha was called with netuid 0, and TAO on the root subnet cannot be burned or recycled. Pass a non-root netuid argument for the subnet whose alpha you want to recycle or burn.
CannotEndInPastThe end block passed to create or update_end is not after the current block. Compare the end argument against the current block number; it must be strictly greater.
CapTooLowOn create the cap is not strictly greater than the initial deposit, or on update_cap the new cap is below the amount already raised. Compare the cap argument against the deposit or the raised field of the Crowdloans entry.
ChainIdMismatchThe order payload's chain_id field differs from this chain's configured EVM chain id, e.g. an order signed for testnet was submitted to mainnet. Compare the order's chain_id with the runtime's pallet_evm_chain_id value and re-sign if needed.
ChildParentInconsistencyA set_children or parent-delegation call would make the same hotkey appear as both a child and a parent, or referenced a child missing from the proposed mapping. Inspect the ChildKeys and ParentKeys storage for the hotkeys involved and remove the overlap.
CodeInUseremove_code was refused because at least one contract instance still references the code hash. Check the code's reference count and terminate or set_code the contracts using it before removal.
CodeRejectedThe uploaded WASM failed validation, most often because it imports a host API the node does not support, e.g. newer ink! against an older node. Rerun the node with -lruntime::contracts=debug to see the detailed rejection reason.
ContributionTooLowThe amount passed to contribute is below the crowdloan's configured minimum contribution. Check the min_contribution field of the Crowdloans entry for the crowdloan_id and contribute at least that amount.
DecodingFailedInput bytes passed to a contract API host function could not be SCALE-decoded into the expected type. Check the encoding of the call's input data or the argument bytes the contract passes to the runtime API.
DelegateTakeTooHighThe take argument exceeds the maximum delegate take allowed by the chain (18% by default). Compare the requested value against the MaxDelegateTake storage item and lower it.
DelegateTakeTooLowThe take argument was below the MinDelegateTake minimum, or increase_take/decrease_take was not strictly increasing/decreasing relative to the current take. Check the hotkey's current take in the Delegates storage and the MinDelegateTake storage item.
DeltaZeroThe issuance adjustment was called with a delta of zero, which is meaningless. Check the delta argument to force_adjust_total_issuance and pass a strictly positive amount.
DepositCannotBeWithdrawnThe creator called withdraw but holds nothing above the initial deposit, which stays locked until the crowdloan is dissolved. Compare the creator's Contributions entry with the deposit field of the Crowdloans entry.
DepositTooLowThe deposit argument to create is below the pallet's required minimum. Check the MinimumDeposit pallet constant and create the crowdloan with at least that initial deposit.
DuplicateChildThe children list passed to set_children contains the same child hotkey more than once. Deduplicate the children argument; current relations are visible in the ChildKeys storage for the parent hotkey and netuid.
DuplicateOrderInBatchTwo entries in one execute_batched_orders call hash to the same order id, meaning the identical signed payload was included twice, which hard-fails the batch. Deduplicate by the blake2-256 hash of each SCALE-encoded VersionedOrder.
DuplicateUidsThe uids vector passed to set_weights (or a reveal) contains the same UID more than once. Deduplicate the uids/values pairs before submitting; each target neuron may appear only once per weight vector.
FailedToExtractRuntimeVersionThe new runtime code passed to set_code did not yield a readable version: calling Core_version or decoding RuntimeVersion failed. Check that the submitted blob is a valid, complete runtime wasm and not truncated or compressed incorrectly.
FeeRateTooHighset_fee_rate was called with a rate above the swap pallet's MaxFeeRate config constant. Compare the rate argument (u16-scaled fraction) against MaxFeeRate before submitting.
GasLimitTooHighThe transaction's gas_limit exceeds the block gas limit configured for the EVM. Compare the gas_limit argument against the chain's block gas limit and lower it.
GasLimitTooLowThe transaction's gas_limit is below the intrinsic gas required, or too small to cover the weight and proof-size base cost. Raise the gas_limit argument, comparing against an eth_estimateGas result.
GasPriceTooLowThe offered fee cannot satisfy the current base fee: max_fee_per_gas is below the block base fee, the priority fee exceeds the max fee, or the fee inputs are inconsistent. Check max_fee_per_gas and max_priority_fee_per_gas against the chain's base fee.
IncorrectCommitRevealVersionThe commit_reveal_version argument does not match the chain's current commit-reveal weights version. Query the CommitRevealWeightsVersion storage item and upgrade or configure the client to commit with that version.
IncorrectPartialFillAmountThe partial_fill amount is zero or exceeds the order's remaining unfilled amount, or a full execution was submitted against an order already partially filled. Compare partial_fill with order.amount minus the filled amount recorded in Orders.
IncorrectWeightVersionKeyThe version_key supplied with set_weights is older than the subnet's required weights version. Compare it against the WeightsVersionKey hyperparameter (btcli sudo get --netuid <n>) and update the validator software or the key.
IndeterministicCode flagged as non-deterministic (e.g. using floating point) was used where determinism is enforced, such as on-chain instantiation or calls. Check the determinism mode the code was uploaded with and rebuild the contract deterministically.
InputForwardedThe contract forwarded its input to a callee via seal_call with the FORWARD_INPUT flag and then tried to read or forward it again. Check the call flags used; use CLONE_INPUT when the input is still needed afterwards.
InputLengthsUnequalA batch weights call passed vectors of different lengths, e.g. netuids vs commit hashes, or uids vs values, salts and version_keys in batch reveal. Check that every parallel vector argument in the batch extrinsic has the same length.
InsufficientInputAmountDeclared for swap inputs too small to execute, but no current code path raises it since the user-liquidity code was removed. If seen on an older runtime, check that the swap input amount is nonzero and large enough to produce output.
InvalidCallFlagsThe flags bitmask given to seal_call or seal_delegate_call contains an unknown or disallowed combination; delegate calls accept only a restricted flag set. Check the flags argument against the supported CallFlags bit values.
InvalidChainIdThe EIP-155 chain id encoded in the signed transaction does not match this chain's configured chain id. Compare the transaction's chain id with the value returned by eth_chainId and re-sign the transaction.
InvalidChildThe children or parents list includes the pivot hotkey itself (a self-loop), including during a hotkey swap when the new hotkey is already a child or parent of the old one. Check the children argument and ChildKeys/ParentKeys for the hotkeys involved.
InvalidChildkeyTakeThe childkey take is outside the allowed range for the subnet: below the effective minimum or above MaxChildkeyTake. Query MinChildkeyTake and MaxChildkeyTake and pick a take value within those bounds.
InvalidDerivedAccountDeriving the sub-account for as_derivative failed to decode into a valid account id from the (caller, index) entropy. Check the index argument and the caller account used for derivation.
InvalidDerivedAccountIdDeriving the pure proxy account id from the provided entropy failed to decode into a valid account. Check the spawner, proxy_type, and index arguments used with create_pure (or the equivalent lookup when destroying one).
InvalidDifficultyThe submitted proof-of-work hash does not meet the required difficulty (the faucet uses a fixed 1,000,000; PoW registration uses the subnet's difficulty). Check the Difficulty storage for the netuid and regenerate work against the current block.
InvalidEquivocationProofThe submitted GRANDPA equivocation proof does not demonstrate a real double-vote: the two votes may be identical, from different rounds or set ids, or badly signed. Verify the proof contains two distinct votes by the same authority in the same round and authority set.
InvalidFinalizationConfigExactly one of call or target_address must be set, but both or neither were provided to create, or the stored crowdloan holds an inconsistent pair at finalize time. Check those two fields on the create arguments or the Crowdloans entry.
InvalidIdentityThe submitted coldkey or subnet identity failed validation, typically a field exceeding its allowed byte length or malformed data. Check each identity field's length against the limits enforced by the chain before calling set_identity or set_subnet_identity.
InvalidIpAddressThe ip argument to serve_axon or serve_prometheus is not a valid address for the declared ip_type (prometheus additionally rejects the zero address). Verify the IP encodes correctly as IPv4 or IPv6 and matches the ip_type passed.
InvalidIpTypeThe ip_type argument to serve_axon or serve_prometheus is not 4 or 6. Check the value being sent by the miner or client; only IPv4 (4) and IPv6 (6) are accepted.
InvalidKeyOwnershipProofThe key ownership proof does not establish that the offending GRANDPA key belonged to the claimed validator at that session. Regenerate the proof via the generate_key_ownership_proof runtime API for the exact set id and authority id in the report.
InvalidLeaseBeneficiaryThe account registering a leased network is not the creator of the crowdloan currently being finalized. Check the crowdloan's creator field in the crowdloan pallet storage and submit the call from that coldkey.
InvalidLiquidityValueLegacy error from the removed V3 user-liquidity code, raised when an added or removed liquidity amount was below the pallet's MinimumLiquidity. Not raised on current runtimes; on older ones compare the liquidity argument to MinimumLiquidity.
InvalidNonceThe transaction nonce does not match the sender's current account nonce, being either too low (already used) or too high. Compare the transaction's nonce with the sender's on-chain nonce from eth_getTransactionCount.
InvalidNumRootClaimThe value passed to sudo_set_num_root_claims exceeds the compile-time maximum number of root claims. Check the new_value argument against the chain's MAX_NUM_ROOT_CLAIMS constant and pass a smaller number.
InvalidPortThe port argument to serve_axon or serve_prometheus is 0, which is rejected. Check the miner or client axon configuration and serve on a non-zero port.
InvalidRecoveredPublicKeyThe EVM key association signature recovered to a public key whose keccak hash does not equal the supplied evm_key. Verify the signature was produced by the claimed EVM key over the hotkey plus block hash message (EIP-191 format).
InvalidRevealCommitHashNotMatchThe revealed uids, values, salt and version_key hash to a value that matches none of the hotkey's pending non-expired commits. Check that the reveal parameters and salt exactly match what was committed, and inspect WeightCommits for the hotkey and netuid.
InvalidRootClaimThresholdThe value passed to set the root claim threshold exceeds the chain's maximum allowed threshold. Check the new_value argument against the MAX_ROOT_CLAIM_THRESHOLD constant and the current RootClaimableThreshold for the netuid.
InvalidRoundNumberA submitted drand pulse has an unacceptable round: the first pulse ever stored must have a round greater than zero, and each later pulse must be exactly LastStoredRound plus one. Compare the pulse round against LastStoredRound.
InvalidScheduleThe pallet's schedule is misconfigured, e.g. a zero weight or zero ref_time_by_fuel for a basic operation, making gas conversion impossible. This is a runtime configuration issue; inspect the Schedule constant rather than call arguments.
InvalidSealThe seal hash recomputed from the supplied block_number, nonce and key does not equal the submitted work. Verify the PoW solver built the seal for the same key and block it submits, and that the work bytes were not corrupted in transit.
InvalidSignatureSignature verification failed: the sender of an Ethereum or EVM transaction could not be recovered from its signature, or a limit order's Sr25519 signature does not match the order payload and signer. Check the signing key, chain id, and the exact payload bytes that were signed.
InvalidSpecNameThe new runtime's spec_name does not match the current runtime, so set_code refuses the upgrade. Check the RuntimeVersion embedded in the new wasm and ensure the spec name is identical to the chain's current one.
InvalidSubnetNumberA root-claim call passed an empty subnet set or more subnets than the per-call maximum (claim_root, or KeepSubnets in set_root_claim_type). Check the subnets argument is non-empty and within the MAX_SUBNET_CLAIMS limit.
InvalidTickRangeLegacy error from the removed V3 user-liquidity code, raised when tick_low was not below tick_high or a tick failed to convert to a sqrt price. Not raised on current runtimes; check the tick range arguments on older ones.
InvalidValueA generic out-of-range parameter on an admin or sudo call, e.g. mechanism counts, emission splits summing away from 65535, max UIDs or take bounds. Check the specific argument against the min/max storage items the extrinsic validates (e.g. MinAllowedUids, MaxMechanismCount).
InvalidVotingPowerEmaAlphaThe alpha passed to set the voting power EMA exceeds 10^18, which represents 1.0. Check the alpha argument to sudo_set_voting_power_ema_alpha; it must be at most 10^18, and the current value is in VotingPowerEmaAlpha per netuid.
InvalidWorkBlockThe block_number in the proof-of-work submission is in the future or more than 3 blocks old, so the work is stale. Compare the submitted block number with the current chain height and regenerate the PoW against a fresh block.
LeaseCannotEndInThePastThe end_block supplied when registering a leased network is not after the current block. Check the current chain height and pass an end_block in the future, or omit it for a perpetual lease.
LeaseHasNoEndBlockThe lease being terminated is perpetual (its end_block is None), so it can never be ended this way. Check the lease's end_block field in SubnetLeases for the given lease id.
LockHotkeyMismatchThe coldkey already has a conviction lock on this subnet bound to a different hotkey, and locks for one coldkey per subnet must target a single hotkey. Check the existing lock's hotkey in the lock storage for the coldkey and netuid, or move the lock first.
MaxAllowedUIdsLessThanCurrentUIdssudo_set_max_allowed_uids was given a value below the number of neurons already registered on the subnet. Compare the max_allowed_uids argument against SubnetworkN for that netuid.
MaxAllowedUidsGreaterThanDefaultMaxAllowedUidssudo_set_max_allowed_uids was given a value above the chain-wide ceiling. Compare the max_allowed_uids argument against the DefaultMaxAllowedUids storage value.
MaxAllowedUidsLessThanMinAllowedUidssudo_set_max_allowed_uids was given a value below the subnet's configured minimum. Compare the max_allowed_uids argument against MinAllowedUids for that netuid.
MaxValidatorsLargerThanMaxUIdssudo_set_max_allowed_validators was given a value exceeding the subnet's UID capacity. Compare the max_allowed_validators argument against MaxAllowedUids for that netuid.
MaxWeightTooLowThe max_weight argument supplied with the final multisig approval is lower than the actual weight of the call being dispatched. Compute the call's real dispatch weight and pass a max_weight at least that large to as_multi.
MaximumContributionTooLowThe new_max_contribution passed to set_max_contribution is below the crowdloan's min_contribution or below the creator's existing contribution. Check both against the Crowdloans entry and the creator's Contributions entry.
MinAllowedUidsGreaterThanCurrentUidssudo_set_min_allowed_uids was given a value not strictly below the number of neurons currently registered on the subnet. Compare the min_allowed_uids argument against SubnetworkN for that netuid.
MinAllowedUidsGreaterThanMaxAllowedUidssudo_set_min_allowed_uids was given a value not strictly below the subnet's maximum UID capacity. Compare the min_allowed_uids argument against MaxAllowedUids for that netuid.
MinimumContributionTooHighThe new_min_contribution passed to update_min_contribution exceeds the crowdloan's configured per-contributor maximum. Compare it with the MaxContributions entry for the crowdloan_id.
MinimumContributionTooLowThe minimum contribution given to create or update_min_contribution is below the chain-wide floor. Check the AbsoluteMinimumContribution pallet constant and raise the min_contribution argument to at least that value.
MinimumThresholdThe multisig threshold argument was below 2, which these calls do not accept. Pass a threshold of 2 or more, or use as_multi_threshold_1 for the single-approval case.
NamedAn unnamed scheduler function was used on a task that was scheduled with a name. Use the named variants (cancel_named, schedule_named) with the task's id, which you can find via the Lookup storage map.
NegativeSigmoidSteepnessA non-root caller (subnet owner) passed a negative value to sudo_set_alpha_sigmoid_steepness; negative steepness values are reserved for the root origin. Use a non-negative steepness or submit the call as root.
NewColdKeyIsHotkeyThe proposed new coldkey in a coldkey swap is already an existing hotkey account, which is not allowed. Check the Owner storage for the candidate key to confirm it is not registered as a hotkey, and pick a fresh coldkey.
NewHotKeyIsSameWithOldswap_hotkey was called with new_hotkey equal to the current hotkey, so there is nothing to swap. Check the extrinsic arguments and supply a different destination hotkey.
NewHotKeyNotCleanForRootSwapThe destination hotkey has pending root claimable dividends, non-zero root stake, or root-claimed history, so root accounting cannot merge safely. Check RootClaimable and root-subnet stake for the new hotkey; claim or clear them, or use a fresh hotkey.
NoApprovalsNeededThe multisig call does not need any more approvals; it is only waiting for final execution with the full call data. Instead of another approve_as_multi, submit as_multi with the complete call to dispatch it.
NoMigrationPerformedA migrate call ran but no migration step executed, either because no migration is pending or the supplied weight_limit is too small for one step. Check the in-progress migration status and increase the weight limit argument.
NoSelfProxyAn account attempted to register itself as its own proxy, which is not allowed. Check the delegate argument to add_proxy and ensure it differs from the calling (delegator) account.
NoTimepointNo timepoint was supplied but this multisig operation is already underway, so the approval cannot be matched to it. Read the operation's when field from the Multisigs entry for the call hash and pass that height and index as maybe_timepoint.
NonDefaultCompositeThe account cannot be killed because its composite account data is not in the default state. Check the account's System.Account entry; all balance and data fields must be default before the account can be removed this way.
NonZeroRefCountThe account cannot be purged because other pallets still reference it. Check the consumers, providers, and sufficients counters in the account's System.Account record; all references must be released first.
NotPermittedOnRootSubnetAn admin-utils call that only applies to regular subnets (burn half-life, burn increase multiplier, owner-cut flags, or the subnet emission toggle) was targeted at the root network. Check that the netuid argument is not the root netuid 0.
NotRootSubnetA call that only operates on the root network, such as setting root network weights, was given a non-root netuid. Check the netuid argument; root operations must target netuid 0.
OrderNetUidMismatchAn order inside an execute_batched_orders call has a netuid field different from the batch's netuid parameter, which hard-fails the entire batch. Check each order payload's netuid against the batch argument and split mismatched orders out.
OutOfBoundsA pointer and length pair passed to a contract API host function references memory outside the contract's sandbox. Check the buffer pointers and lengths the contract passes to seal functions; this usually indicates a low-level contract bug.
OutputBufferTooSmallThe output buffer the contract supplied to an API call is smaller than the data the runtime needs to write back. Check the output length pointer the contract passes and enlarge the buffer; usually a contract-side bug.
PauseFailedA GRANDPA pause was signalled while the authority set is not live, i.e. it is already paused or a pause is already pending. Check the Grandpa State storage before signalling a pause.
PreLogExistsAn ethereum.transact extrinsic was submitted in a block that already carries a pre-log digest, meaning an Ethereum transaction is being injected by other means. Check the block's digest for a pre-runtime Ethereum log; transact is not allowed alongside it.
ProportionOverflowThe child proportions passed to set_children sum to more than u64::MAX. Reduce the per-child proportion values so their total fits in a u64; each proportion is a fraction of u64::MAX.
PulseVerificationErrorBLS signature verification of a submitted drand pulse against the stored beacon configuration failed. Check the pulse's signature and round against the BeaconConfig storage (drand quicknet public key).
ReentranceDeniedA call tried to re-enter a contract already on the call stack without reentrancy being allowed, or contract code called back into the contracts pallet through the runtime. Check the callee address against the current call stack and the ALLOW_REENTRY call flag.
RegistrationNotPermittedOnRootSubnetA neuron registration or child-hotkey operation (register, burned_register, set_children) was called with the root netuid, where these calls are invalid. Check the netuid argument; use a regular subnet, or root_register for root membership.
RelayerMissMatchThe order's relayer allowlist is set but the account that submitted the execution transaction is not in it. Compare the extrinsic's signing account against the relayer list in the signed order payload.
RelayerRequiredForPartialFillA partial_fill was requested for an order whose relayer field is empty; partial fills are only permitted on orders that restrict who may execute them. Check the order payload and either set a relayer list or execute the full amount.
RequestedThe preimage cannot be unnoted while there are still outstanding requests for it. Check the request count in the hash's request status; all requests must be cleared before the preimage can be removed.
RescheduleNoChangeThe reschedule was rejected because the new dispatch time equals the task's currently scheduled time. Check the task's existing slot in Agenda and pass a genuinely different when block.
ResumeFailedA GRANDPA resume was signalled while the authority set is not paused, i.e. it is live or already pending a resume. Check the Grandpa State storage before signalling a resume.
RevealPeriodTooLargeset_reveal_period was given a commit-reveal period above the compiled-in maximum number of epochs. Lower the reveal_period argument; the current setting is readable from RevealPeriodEpochs for the netuid.
RevealPeriodTooSmallset_reveal_period was given a commit-reveal period below the compiled-in minimum number of epochs. Raise the reveal_period argument; the current setting is readable from RevealPeriodEpochs for the netuid.
RootNetUidNotAllowedThe order or batch targets the root subnet, netuid 0, which the limit orders pallet does not serve. Check the netuid field of the order payload or the netuid parameter of the batch call and target a non-root subnet.
SameNetuidA stake swap or move where coldkey, hotkey, and subnet are all unchanged, so origin_netuid equals destination_netuid with nothing to transition. Check the call arguments; at least the subnet or one of the keys must differ.
SenderInSignatoriesThe multisig sender was included in the other_signatories list, but that list must contain only the remaining signatories. Remove the sender's own account from other_signatories before resubmitting.
SignatoriesOutOfOrderThe other_signatories list is not sorted in strictly ascending account order, which the multisig pallet requires for a canonical account derivation. Sort the list and remove duplicates before resubmitting.
SpecVersionNeedsToIncreaseThe new runtime's spec_version is not greater than the current one, so the upgrade is rejected. Check the RuntimeVersion in the new wasm and bump spec_version above the version currently on chain.
TargetBlockNumberInPastThe scheduler was given a dispatch block that is not in the future. Compare the when argument against the current block number and choose a strictly later block.
TempoOutOfBoundsThe subnet owner gave sudo_set_tempo a tempo outside the allowed MIN_TEMPO to MAX_TEMPO range (360-50,400 blocks). Check the tempo argument against those chain constants and pick a value inside the bounds; only root may set a tempo outside them.
TerminatedWhileReentrantseal_terminate was called on a contract that appears more than once on the call stack, so termination was refused. Check the call chain for reentrant calls into the contract being terminated.
TooFewThe bulk preimage upgrade was requested with zero hashes, so there is nothing to do. Pass at least one hash to ensure_updated.
TooFewSignatoriesThe multisig signatory list is too short: other_signatories must contain at least one account besides the sender. Check the length of other_signatories against the threshold you are using.
UidVecContainInvalidOneThe weight submission includes a UID that is not registered on the subnet, i.e. at least one entry is not below SubnetworkN. Check the uids argument against the subnet's neuron count in the metagraph (btcli subnets metagraph).
UnableToRecoverPublicKeyWhile associating an EVM key, the secp256k1 public key recovered from the supplied signature could not be parsed. Check that the signature was produced by signing the expected EIP-191 message (hotkey plus block hash) with the EVM private key.
UnexpectedTimepointA timepoint was supplied but no multisig operation is underway for this call hash; the first approval must open the operation with no timepoint. Pass maybe_timepoint: None on the opening call, or verify the call hash matches an existing Multisigs entry.
UnverifiedPulseDeclared for drand pulses that fail validity checks, but current code raises PulseVerificationError for verification failures and silently skips unverified pulses. If seen on an older runtime, check the pulse signature against BeaconConfig.
ValueNotInBoundsAn admin-utils argument fell outside its allowed range: min_burn must be below MinBurnUpperBound and the subnet's max burn, max_burn above MaxBurnLowerBound and the min burn, and max_epochs_per_block at least 1. Check the argument against those bounds.
WeightVecLengthIsLowThe weight submission has fewer entries than the subnet's minimum (setting only a self-weight is the one exception). Compare the vector length against the MinAllowedWeights (min_allowed_weights hyperparameter) for the netuid.
WeightVecNotEqualSizeThe uids and values vectors passed to a weight-setting call have different lengths, so they cannot be paired. Check the call arguments; both vectors must have exactly one value per UID.
WrongTimepointThe timepoint supplied does not match the one recorded when this multisig operation was opened. Read the correct when height and index from the Multisigs entry for the call hash and resubmit with that exact timepoint.
XCMDecodeFailedThe bytes the contract passed to xcm_execute or xcm_send could not be decoded as a versioned XCM message. Check the XCM encoding and version the contract produces against what the runtime supports.
ZeroShareInBatchAn order's pro-rata share of the batch output floored to zero, so the whole batch was rejected rather than consuming that order's input for no payout. Check the order's amount relative to the batch totals and retry it in a differently composed batch.

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