3

I am getting ump.InvalidFormat when I sending a XCM / UMP from local a local parachain setup to relay chain to. the message instruction is[1][withdraw, buydeposit, deposit] on the relaychain I am using the substrate-parahchain-template and polkadot.git as relay chain and zomebiet net to start a local chain in order to test sending anc XCM. I am following the example here to create and send the xcm message. I have attached images of the zombienet config, xcm message and xcm events are the relaychain.


UPDATE

I have set the safXcmVersion of both the relay chain and the parachain to v2 however I still get thesame error. Looking the the polkadotXcm.sent event emitted by the parachain (image attached), I can see that it sends the xcm message using v3 even though the safeXcmVersion on both chains is set to v2

enter image description here [enter image description here]enter image description here

enter image description here

enter image description here

1
  • I'm facing the same issue. Have you been able to work it around or fix somehow? @Neo Commented Aug 7, 2023 at 9:31

4 Answers 4

1

Try to WithdrawAsset(0, Here) rather than (1, Here). (0,Here) is the native token in Relaychain, and relaychain cannot handle other tokens.

--- Update

I noticed that the relay chain you are using is v0.9.38, the parachain is v0.9.37, the update of v0.9.38 includes XCM v3, and the compatibility code is not included in v0.9.37, so I suggest you use compatibility Relay chain and parachain version. For example, v0.9.37 relay and v0.9.37 parachain. Or v0.9.38 relay and v0.9.38 parachain.

3
  • I have updated and tried WithdrawAsset(0, Here) but still thesame error. I have updated the same images im the question above and added the relay chain account balances image
    – Neo
    Commented Jul 4, 2023 at 19:20
  • @Neo Check the update.
    – Guantong
    Commented Jul 5, 2023 at 2:40
  • I have updated both the relay chain and parachain templates to use v0.9.42 but still getting same error. i have updated the zomebienet config image in the question
    – Neo
    Commented Jul 5, 2023 at 15:56
1

The issue is in the outdated Rococo Local Relay Chain chain-spec that is used to run the validator nodes.

You should either download the latest spec from here and launch the relay chain from scratch or upgrade the runtime up to version 9400 at least to make sure it supports XCM V3 messaging.

0

It most likely is that xcmPallet.safeStorageVersion is set to a higher number (ex. 3) than the xcm version you are sending (ex. 2).

You could try adjusting this storage at genesis or call the extrinsic xcmPallet.forceDefaultXcmVersion on Relaychain using sudo

1
  • I have set the safXcmVersion of both the relay chain and the parachain to v2 however I still get thesame error. Looking the the polkadotXcm.sent event emitted by the parachain (image attached to question ), I can see that it sends the xcm message using v3 even though the safeXcmVersion on both chains is set to v2
    – Neo
    Commented Jul 5, 2023 at 22:11
0

Your best bet is to set xcm logs to trace

-lxcm=trace

Also please try setting the xcm version of the location. Your logs might indicate that the location (0, parachain(paraID) is unknown

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.