NoneValue

Error v216 → current 26.0

A required value was not found in storage when expected.

Encountered by: validatorsdevelopers

Why This Error Exists

The Drand pallet expects certain values to exist. This error indicates an attempt to use a value that was never set or has been removed. Most commonly, it occurs when querying pulses outside the available range or when the beacon hasn't been configured.

Deep Dive

This is a generic 'missing data' error. The Drand pallet stores pulses by round number, but rounds can be missing (never submitted) or pruned (too old). BeaconConfig must also be set before any pulse verification can occur.

Debugging Example

You try to fetch Pulses(99999999). Error: NoneValue. Query LastStoredRound() - returns 12345678. Round 99999999 is way beyond what's stored. Query an actual round instead.

Prevention Tips

  • Always check LastStoredRound before querying specific rounds
  • Verify BeaconConfig exists before write_pulse operations
  • Handle missing pulse data gracefully in your application

From Chain Metadata

The value retrieved was `None` as no value was previously set.

What This Means

A required value was not found in storage when expected.

Common Causes

  • Trying to access storage that hasn't been initialized
  • Querying a round that doesn't exist in Pulses storage
  • BeaconConfig not yet set after chain genesis

How to Fix

  • Check if BeaconConfig has been initialized via set_beacon_config
  • Verify the round number exists - query LastStoredRound and OldestStoredRound for valid range
  • Ensure all required storage is initialized before operations

Storage to Check

Thrown By

Runtime Info

Pallet Index
26
Error Index
0
Error Code
26.0
Runtime Version
v393