# not_found (/docs/errors/not-found)

The call references an object that is not on-chain: a weights commit, lease, multisig operation, scheduled call, announcement, or contribution that was never created, was already consumed, or has been removed.

Check the identifier and the current chain state. if the flow has a create step (commit before reveal, announce before execute), make sure it completed on the network you are connected to (check `--network`).

## Remediation [#remediation]

The referenced object is not on-chain; check the identifier

## Chain errors [#chain-errors]

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

| Chain error                                                                             | Description                                                                                                                                                                                                                                                             |
| --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`CallUnavailable`](/docs/errors/chain/CallUnavailable)                                 | During `finalize` the crowdloan's stored call could not be fetched from preimage storage, so nothing was dispatched. Check that the preimage referenced by the `call` field of the `Crowdloans` entry still exists in the preimage pallet.                              |
| [`CodeInfoNotFound`](/docs/errors/chain/CodeInfoNotFound)                               | No `CodeInfoOf` entry exists for the supplied code hash, so its owner and deposit metadata cannot be read. Verify the code hash argument and that the code was uploaded and not since removed.                                                                          |
| [`CodeNotFound`](/docs/errors/chain/CodeNotFound)                                       | No uploaded WASM binary exists under the supplied code hash. Verify the `code_hash` argument used in instantiation, `set_code`, or a delegate call, and that the code was uploaded via `upload_code` and not removed.                                                   |
| [`ColdkeySwapAnnouncementNotFound`](/docs/errors/chain/ColdkeySwapAnnouncementNotFound) | `coldkey_swap`, `dispute_coldkey_swap`, or `clear_coldkey_swap_announcement` was called for a coldkey with no pending announcement. Check the `ColdkeySwapAnnouncements` storage; you must call `announce_coldkey_swap` first.                                          |
| [`ContractNotFound`](/docs/errors/chain/ContractNotFound)                               | No contract instance exists at the destination address; the account has no `ContractInfoOf` entry. Verify the `dest` address and that the contract was instantiated and has not been terminated.                                                                        |
| [`DeadAccount`](/docs/errors/chain/DeadAccount)                                         | The beneficiary account does not exist and this operation is not allowed to create it. Check `System.Account` for the destination: it must already hold at least the existential deposit before the operation runs.                                                     |
| [`DelegateDependencyNotFound`](/docs/errors/chain/DelegateDependencyNotFound)           | `unlock_delegate_dependency` was called for a code hash that is not among the contract's locked delegate dependencies. Check the code hash argument against the dependencies recorded in the contract's info.                                                           |
| [`InvalidCrowdloanId`](/docs/errors/chain/InvalidCrowdloanId)                           | No crowdloan exists in the `Crowdloans` storage map for the given `crowdloan_id`; it was never created or has been dissolved. Check `Crowdloans` for the id and `NextCrowdloanId` for the range of ids ever issued.                                                     |
| [`LeaseDoesNotExist`](/docs/errors/chain/LeaseDoesNotExist)                             | The `lease_id` argument does not correspond to any stored lease. Query the `SubnetLeases` storage map to confirm the lease id and whether it was already terminated.                                                                                                    |
| [`LeaseNetuidNotFound`](/docs/errors/chain/LeaseNetuidNotFound)                         | After registering the leased network, no subnet owned by the lease's derived coldkey could be found, so the netuid lookup failed. Inspect `SubnetOwner` entries for the lease coldkey; this usually indicates the registration did not complete.                        |
| [`NoContribution`](/docs/errors/chain/NoContribution)                                   | The account has no contribution recorded for this crowdloan, so `withdraw` has nothing to pay out (or `dissolve` finds no creator contribution). Check the `Contributions` double map under the `crowdloan_id` for the account in question.                             |
| [`NoDeposit`](/docs/errors/chain/NoDeposit)                                             | No safe-mode deposit exists for the given account and block combination, so nothing can be released or slashed. Check the `Deposits` storage map for an entry under that account and deposit block.                                                                     |
| [`NoExistingLock`](/docs/errors/chain/NoExistingLock)                                   | move\_lock was called but no conviction lock exists for the signing coldkey on that subnet. Check the lock storage for the coldkey and netuid, and create a lock before attempting to move it to another hotkey.                                                        |
| [`NoWeightsCommitFound`](/docs/errors/chain/NoWeightsCommitFound)                       | A weights reveal was submitted but no pending (non-expired) commit exists for the hotkey and netuid, possibly because it already expired. Query the `WeightCommits` storage map for the hotkey and check the commit hasn't passed the reveal window.                    |
| [`NoneValue`](/docs/errors/chain/NoneValue)                                             | Template leftover in the drand pallet meaning a storage value was read before ever being set; no current code path raises it. If seen, inspect the drand pallet's storage items for missing initialization.                                                             |
| [`NotFound`](/docs/errors/chain/NotFound)                                               | The referenced item does not exist in storage: no multisig operation for that call hash in `Multisigs`, no scheduled task at that slot or name in `Agenda`/`Lookup`, or no matching proxy registration in `Proxies`. Verify the identifier against current chain state. |
| [`NotNoted`](/docs/errors/chain/NotNoted)                                               | The preimage cannot be unnoted because no preimage was ever noted for this hash. Check `RequestStatusFor` (or legacy `StatusFor`) for the hash to confirm what, if anything, is stored.                                                                                 |
| [`NotRequested`](/docs/errors/chain/NotRequested)                                       | The preimage request cannot be removed because there are no outstanding requests for this hash. Check the request status for the hash in `RequestStatusFor` before calling `unrequest_preimage`.                                                                        |
| [`NothingAuthorized`](/docs/errors/chain/NothingAuthorized)                             | No code upgrade has been authorized, so `apply_authorized_upgrade` has nothing to apply. Check the `AuthorizedUpgrade` storage item in System; an authorization must be recorded before applying the new code.                                                          |
| [`SymbolDoesNotExist`](/docs/errors/chain/SymbolDoesNotExist)                           | The requested token symbol is not in the chain's predefined symbol table, so it cannot be assigned to a subnet. Check the symbol argument against the chain's built-in `SYMBOLS` list and choose a valid entry.                                                         |

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