0

I'm getting a SendFailure error(on asset hub) when performing a reserve asset transfer of ROC from rococo asset hub to a parachain, does anyone know what might be the cause? Or how can I further debug the issue?

This is the call I'm doing: 0x1f0203010100b5200300010100e266243731bf69fff27133f3cbb8def28c6fd26d688d14fee34ab6950351aa0f030400010000070010a5d4e800000000

Update:

I've replicated the issue using chopsticks, here are the logs:

xcm::weight                  TRACE: WeightInfoBounds message: Xcm([SetFeesMode { jit_withdraw: true }, TransferReserveAsset { assets: MultiAssets([MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }]), dest: MultiLocation { parents: 1, interior: X1(Parachain(2093)) }, xcm: Xcm([]) }])
xcm::pallet_xcm::do_reserve_transfer_assets DEBUG: origin MultiLocation { parents: 0, interior: X1(AccountId32 { network: Some(Rococo), id: [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125] }) }, dest MultiLocation { parents: 1, interior: X1(Parachain(2093)) }, beneficiary MultiLocation { parents: 0, interior: X1(AccountId32 { network: None, id: [226, 102, 36, 55, 49, 191, 105, 255, 242, 113, 51, 243, 203, 184, 222, 242, 140, 111, 210, 109, 104, 141, 20, 254, 227, 74, 182, 149, 3, 81, 170, 15] }) }, assets MultiAssets([MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }]), fee-idx 0
xcm::contains                TRACE: ConcreteAssetFromSystem asset: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, origin: MultiLocation { parents: 1, interior: X1(Parachain(2093)) }
xcm::contains                TRACE: IsForeignConcreteAsset asset: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, origin: MultiLocation { parents: 1, interior: X1(Parachain(2093)) }
xcm::contains                TRACE: IsTrustedBridgedReserveLocationForConcreteAsset asset: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, origin: MultiLocation { parents: 1, interior: X1(Parachain(2093)) }, universal_source: X2(GlobalConsensus(Rococo), Parachain(1000))
xcm::contains                TRACE: IsTrustedBridgedReserveLocationForConcreteAsset origin: MultiLocation { parents: 1, interior: X1(Parachain(2093)) } is not remote to the universal_source: X2(GlobalConsensus(Rococo), Parachain(1000))
xcm::contains                TRACE: IsForeignConcreteAsset asset: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, origin: MultiLocation { parents: 1, interior: X1(Parachain(2093)) }
xcm::contains                TRACE: ConcreteAssetFromSystem asset: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, origin: MultiLocation { parents: 1, interior: Here }
xcm::pallet_xcm::build_and_execute_xcm_transfer_type DEBUG: origin MultiLocation { parents: 0, interior: X1(AccountId32 { network: Some(Rococo), id: [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125] }) }, dest MultiLocation { parents: 1, interior: X1(Parachain(2093)) }, beneficiary MultiLocation { parents: 0, interior: X1(AccountId32 { network: None, id: [226, 102, 36, 55, 49, 191, 105, 255, 242, 113, 51, 243, 203, 184, 222, 242, 140, 111, 210, 109, 104, 141, 20, 254, 227, 74, 182, 149, 3, 81, 170, 15] }) }, assets [MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }], transfer_type LocalReserve, fees_handling FeesHandling::Batched(MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }), weight_limit: Unlimited
xcm::weight                  TRACE: WeightInfoBounds message: Xcm([TransferAsset { assets: MultiAssets([MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }]), beneficiary: MultiLocation { parents: 1, interior: X1(Parachain(2093)) } }])
xcm::weight                  TRACE: WeightInfoBounds message: Xcm([TransferAsset { assets: MultiAssets([MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }]), beneficiary: MultiLocation { parents: 1, interior: X1(Parachain(2093)) } }])
xcm::execute_xcm_in_credit   TRACE: origin: MultiLocation { parents: 0, interior: X1(AccountId32 { network: Some(Rococo), id: [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125] }) }, message: Xcm([TransferAsset { assets: MultiAssets([MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }]), beneficiary: MultiLocation { parents: 1, interior: X1(Parachain(2093)) } }]), weight_credit: Weight { ref_time: 294654000, proof_size: 6196 }
xcm::barriers                TRACE: TrailingSetTopicAsId origin: MultiLocation { parents: 0, interior: X1(AccountId32 { network: Some(Rococo), id: [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125] }) }, instructions: [TransferAsset { assets: MultiAssets([MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }]), beneficiary: MultiLocation { parents: 1, interior: X1(Parachain(2093)) } }], max_weight: Weight { ref_time: 294654000, proof_size: 6196 }, properties: Properties { weight_credit: Weight { ref_time: 294654000, proof_size: 6196 }, message_id: None }
xcm::barriers                TRACE: TakeWeightCredit origin: MultiLocation { parents: 0, interior: X1(AccountId32 { network: Some(Rococo), id: [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125] }) }, instructions: [TransferAsset { assets: MultiAssets([MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }]), beneficiary: MultiLocation { parents: 1, interior: X1(Parachain(2093)) } }], max_weight: Weight { ref_time: 294654000, proof_size: 6196 }, properties: Properties { weight_credit: Weight { ref_time: 294654000, proof_size: 6196 }, message_id: None }
xcm::process                 TRACE: origin: Some(MultiLocation { parents: 0, interior: X1(AccountId32 { network: Some(Rococo), id: [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125] }) }), total_surplus/refunded: Weight { ref_time: 0, proof_size: 0 }/Weight { ref_time: 0, proof_size: 0 }, error_handler_weight: Weight { ref_time: 0, proof_size: 0 }
xcm::process_instruction     TRACE: === TransferAsset { assets: MultiAssets([MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }]), beneficiary: MultiLocation { parents: 1, interior: X1(Parachain(2093)) } }
xcm::currency_adapter        TRACE: internal_transfer_asset asset: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, from: MultiLocation { parents: 0, interior: X1(AccountId32 { network: Some(Rococo), id: [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125] }) }, to: MultiLocation { parents: 1, interior: X1(Parachain(2093)) }
xcm::execute_xcm_in_credit   TRACE: result: Ok(())
xcm::pallet_xcm::note_unknown_version TRACE: XCM version is unknown for destination: MultiLocation { parents: 1, interior: X1(Parachain(2093)) }
runtime::system              TRACE: Used block weight: PerDispatchClass { normal: Weight { ref_time: 1833216000, proof_size: 14995 }, operational: Weight { ref_time: 0, proof_size: 0 }, mandatory: Weight { ref_time: 10123204000, proof_size: 14325 } }
runtime::system              TRACE: Used block length: 5669
runtime::system              TRACE: Extrinsic failed at block(3699897): <wasm:stripped>
runtime::xcmp-queue-migration DEBUG: Lazy migration finished: item gone
runtime::system              DEBUG: [3699897] 0 extrinsics, length: 5669 (normal 0%, op: 0%, mandatory 0%) / normal weight:Weight(ref_time: 1833216000, proof_size: 14995) (0%) op weight Weight(ref_time: 0, proof_size: 0) (0%) / mandatory weight Weight(ref_time: 10846204000, proof_size: 83501) (0%)

But they don't provide much insight into the issue, the only error I can see is Extrinsic failed at block(3699897): <wasm:stripped>

1 Answer 1

1

It's a known issue with XCM that has a fix but still has to get to the rococo runtime, only reserve asset transfers are affected.

The issue in GitHub is https://github.com/paritytech/polkadot-sdk/issues/3070 and a patch will be released to Kusama

5
  • Thanks! Is the issue also on Polkadot? Is there an ETA for the fix? Do you have the link to the issue?
    – Sebastian
    Feb 6 at 20:21
  • Updated the answer to add links to the issue Feb 7 at 14:11
  • Thanks Francisco!
    – Sebastian
    Feb 7 at 15:39
  • Is there a way to know when this fix will be implemented in rococo?
    – Sebastian
    Feb 21 at 17:54
  • It seems that the problem we are having is not related to the mentioned issue, as supposedly the issue is fixed in rococo, but we are still having the same problem
    – Sebastian
    Mar 6 at 19:40

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.