(This question was originally asked here: https://stackoverflow.com/questions/72056703/substrate-forkless-upgrade-tutorial-pallet-scheduler-has-breaking-changes)

I am following the Substrate forkless upgrade tutorial and have added

pallet-scheduler = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.19" }

to my Cargo.toml. However, when I try to build the runtime with the command

cargo build --release -p node-template-runtime

the process fails and I get the following error message:

error[E0046]: not all trait items implemented, missing: PreimageProvider, NoPreimagePostponement

It seems that this appears to be a newer version and requires me to specify NoPreimagePostponement and PreimageProvider types in pallet_scheduler::Config.

How can I set those parameters? https://docs.rs/pallet-scheduler/latest/pallet_scheduler/trait.Config.html doesn't seem to have those properties.

  • I’m voting to close this question because it's been fixed upstream.
    – Nuke
    May 18, 2022 at 16:02

1 Answer 1


Indeed, there is a new version for the Scheduler pallet and the tutorial needs to be updated according to it. This pull request mentions the necessary changes. In the meantime, just set the following to imitate the desired behavior:

type PreimageProvider = ();
type NoPreimagePostponement = ();
  • Glad this worked! When you see an issue in the docs, please do be so kind as to open an issue - or if you have a solution, a PR :) - so we can get that fixed up! Perhaps this was you? github.com/substrate-developer-hub/substrate-docs/issues/1003
    – Nuke
    May 17, 2022 at 22:19
  • That was not me, I just encountered the same error yesterday when trying to complete the tutorial. But indeed, those commits fixed the tutorial :)
    – Iker
    May 18, 2022 at 7:31

Not the answer you're looking for? Browse other questions tagged or ask your own question.