3

I found that Substrate has a limit of 64 pallets that can be added to the runtime. Adding more causes the following (very unobvious) error:

error[E0599]: the function or associated item `execute_block` exists for struct `Executive<Runtime, Block<Header<u32, BlakeTwo256>, ...>, ..., ..., ..., ...>`, but its trait bounds were not satisfied

enter image description here

I'm using this runtime as a template.

Is there a way to extend this limitation?

1 Answer 1

7

I think you are the first one to hit that limit 😂. The compile error comes directly from Rust. Not sure how much we can do to have a nicer print.

frame-support exposes multiple features like tuples-96 which should enable support for runtimes with more pallets. In your Cargo.toml you would additionally enable frame-support/tuples-96.

4
  • Thanks, works perfectly after adding tuples-96 feature like this: frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36", features = ["tuples-96"] }
    – Filk
    Feb 15 at 14:44
  • Limit has been increased on master branch: github.com/paritytech/substrate/pull/13760
    – Bruno
    Apr 7 at 11:42
  • That was done only for the kitchensink runtime - other projects will still need to change their code to avoid it. Apr 7 at 14:14
  • 1
    We have also improved the error message that's thrown by construct_runtime!: github.com/paritytech/substrate/pull/13763. It shouldn't be confusing anymore, once the tuple limit needs to be bumped - this should inform us properly from now on.
    – Lazycoder
    Apr 7 at 16:25

Your Answer

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

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