While I don't know for sure what the "incomplete execution" error means. I think we can conclude that from your given context it means that the actual sudo transaction was executed successfully, but the wrapped call returned an error. As you show in your screenshot the error is:
Module {
index: 1,
error: 0,
}
This error means that a pallet has returned an error. The index
is the index of the pallet in the runtime. System
is always at index == 0
and it is safe to assume that you have ParachainSystem
at index == 1
. So, we need to check the error type in parachain system:
#[pallet::error]
pub enum Error<T> {
/// Attempt to upgrade validation function while existing upgrade pending
OverlappingUpgrades,
/// Polkadot currently prohibits this parachain from upgrading its validation function
ProhibitedByPolkadot,
/// The supplied validation function has compiled into a blob larger than Polkadot is
/// willing to run
TooBig,
/// The inherent which supplies the validation data did not run this block
ValidationDataNotAvailable,
/// The inherent which supplies the host configuration did not run this block
HostConfigurationNotAvailable,
/// No validation function upgrade is currently scheduled.
NotScheduled,
/// No code upgrade has been authorized.
NothingAuthorized,
/// The given code upgrade has not been authorized.
Unauthorized,
}
The error: 0
means that is was the variant at 0
in the given enum, so it should be OverlappingUpgrades
. This means that you already have scheduled a runtime upgrade. For Parachains the runtime upgrades are not applied directly, they need to wait until the relay chain has given the go to apply the runtime upgrade. This minimum time between registering the runtime upgrade and when it is applied is the validation_upgrade_delay
of the relay chain HostConfiguration
. If you are running a test local relay chain network, you can override this value at genesis or also later at runtime.