Before this setCode upgrade, our parachain works well. After setCode upgrade, we get the following error log.

Jun 02 09:39:36 Parami-AWS-SFO-DANA-01 parami[490]: 2022-06-02 09:39:36 ⚠️ ParachainSystem declares internal migrations (which *might* execute). On-chain `StorageVersion(0)` vs current storage version `StorageVersion(1)`
Jun 02 09:39:36 Parami-AWS-SFO-DANA-01 parami[490]: 2022-06-02 09:39:36 panicked at 'validation function params are always injected into inherent data; qed', /Users/right/.cargo/git/checkouts/cumulus-59522f43471fa161/05cc5f0/pallets/parachain-system/src/lib.rs:579:74
Jun 02 09:39:36 Parami-AWS-SFO-DANA-01 parami[490]: 2022-06-02 09:39:36 Proposing failed: ClientImport("Application(Application(Execution(Other(\"Wasm execution trapped: wasm trap: unreachable\\nwasm backtrace:\\n    0: 0x4610 - <unknown>!rust_begin_unwind\\n    1: 0x28c2 - <unknown>!core::panicking::panic_fmt::h8566c1c199f4b1e9\\n    2: 0x5550 - <unknown>!core::panicking::panic_display::h03e149d96a13e8f5\\n    3: 0x5508 - <unknown>!core::panicking::panic_str::h2aae451d464e75d2\\n    4: 0x54e2 - <unknown>!core::option::expect_failed::h6512e249c1770a7a\\n    5: 0x37716a - <unknown>!BlockBuilder_inherent_extrinsics\\n\"))))")

When go to the source code, we see the following code in parachain-system:

fn create_inherent(data: &InherentData) -> Option<Self::Call> {
        let data: ParachainInherentData =
                "validation function params are always injected into inherent data; qed",
 Some(Call::set_validation_data { data })

Our dependency of Substrate and Cumulus are as following:

sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.13', default-features = false }
cumulus-client-collator = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13' }

And, our local rococo's version is also


We believe the most significant change in our upgrade is this one: https://github.com/parami-protocol/parami-blockchain/commit/41be91cfeb2aad91bed40bd4135af1a3809bda17

In our updated commits, there are no substrate or polkadot relative dependency upgrade. So we are lost in this problem. Any help or direction is preciated.

  • What environment are you in? Relay you are connecting to? Testing locally?
    – Nuke
    Jun 2, 2022 at 12:37
  • Why may I ask are you on such outdated dependencies and what are you upgrading from yo 0.9.13?
    – Nuke
    Jun 2, 2022 at 12:38
  • @DanShields we are connect to local rococo which is used to act as the staging net before mainnet. Jun 2, 2022 at 13:05
  • What version of rococo local? You cannot connect to mainnet at this old version
    – Nuke
    Jun 2, 2022 at 13:12
  • @DanShields We didn't upgrade any dependency of Substrate or Cumulus, this upgrade just carry our own pallet's modification. So I don't think the version is the really relative to this question(truly, it's too old). Jun 2, 2022 at 13:12

1 Answer 1


Couple things to make sure:

  • 1. We have bump the spec version. 2. We use sudo.setCode to upgrade. Jun 5, 2022 at 6:50
  • will sudo.setCode break this ? Jun 5, 2022 at 6:51
  • You can use setCode- it does not break anything. It is fine to use. authorize_upgrade and then enact_authorized_upgrade is discrete where as setCode just bundles it all together.
    – Bruno
    Jun 7, 2022 at 15:06
  • Thank you, Bruno. Jun 8, 2022 at 2:21

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.