note_stalled
Call v101 → v148, v149 → current #2Signals that GRANDPA finality has stalled and schedules a forced authority set change.
View calls on chainCall Workflow
This diagram shows the call execution flow: starting with note_stalled, passing through validation
(signature, nonce, mortality, fee payment), then pre-dispatch checks, followed by dispatch and modifies storage: PendingChange, Stalled, NextForced, and finally post-dispatch where ExtrinsicSuccess is emitted and fees are settled.
Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.
Click items to navigate. Pan and zoom to explore.
Used by: developers
The Big Picture
Sometimes GRANDPA gets stuck - validators might go offline, network partitions happen, or bugs cause finality to stop. This root call is the emergency recovery mechanism. It schedules a forced transition to a new validator set, allowing the network to resume finality after a safety delay.
Use Cases
- Recover from GRANDPA consensus failures
- Transition to a new validator set when current set is unresponsive
- Emergency recovery when finality has stopped progressing
From Chain Metadata
See [`Pallet::note_stalled`].
Input Parameters
Permissions
Origin
Unknown
Required Role
Permission data inferred from metadata. May be incomplete.
Requirements
- Caller has root/sudo privileges
- GRANDPA has actually stalled (finality is not progressing)
- Delay parameter is high enough to prevent reorgs (e.g., 1000 blocks)
Effects
Storage Modified
Postconditions
- Forced authority set change is scheduled for the next session
- New validators will start voting from best_finalized_block_number
Side Effects
- May disrupt ongoing finality if called prematurely
- Network transitions to new authority set after delay
Code Examples
import { createClient, Binary } from "polkadot-api";
import { getWsProvider } from "polkadot-api/ws";
import { sub } from "@polkadot-api/descriptors"; // generated by: npx papi add sub -w wss://entrypoint-finney.opentensor.ai:443
const client = createClient(getWsProvider("wss://entrypoint-finney.opentensor.ai:443"));
const api = client.getTypedApi(sub);
// Build note_stalled call (typed, named args)
const delay = 0;
const best_finalized_block_number = 0;
const tx = api.tx.Grandpa.note_stalled({
delay,
best_finalized_block_number,
});Version History
v101 block 1 2 args
v149 block 3,014,339 2 args Current
Runtime Info
- Pallet Index
- 4
- Call Index
- 2
- First Version
- v101
- Current Version
- v411