I have made successful runtime upgrades through the sudo pallet prior to this, but after trying to do it through referendum using the democracy pallet there was an error. enter image description here

What are the step to make a runtime upgrade through democracy?

I have a sense that anytime i upload the compact.compressed Wasm file it doesn't work but if i copy and past the Wasm code from a build-spec it does work.

  • Does this answer your question? Runtime upgrade error: parachainSystem.ValidationDataNotAvailable
    – AurevoirXavier
    Commented Dec 9, 2022 at 12:37
  • ive done the enact and authorize route. I have done quite a few mainnet upgrades via sudo, decentration.medium.com/… On the first ever refendum upgrade i used sudo to create the AuthorizeUpgrade, then i made a referendum to run the enactAuthorizeUpgrade, which took about 2 weeks, and produced an error. I think perhaps its a because i uploaded a compact comptessed wasm file, and i only have ever copy pasted wasm from a build spec. Commented Dec 9, 2022 at 13:07

1 Answer 1


IIUC, you only need to do the authorize_upgrade through referendum which require a root origin.

After that, anyone can call enact_authorized_upgrade.

As I mentioned in my comment. Check Runtime upgrade error: parachainSystem.ValidationDataNotAvailable.

You should not run the enact_authorized_upgrade in on_initialize. And the referendum is a schedule call. That's why you got this error.


As you can see, you don't need a root origin to run enact_authorized_upgrade.

  • i see i seee. right that really helps thanks!! Commented Dec 9, 2022 at 13:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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