## Monitoring Failed XCM Transfers
### 1. From Relay To System
- [Example XCM](https://polkadot.subscan.io/xcm_message/polkadot-c8d7186edb43a592d65b3b5a87c4ecaac38c5aa2)
- Check in the System Parachain for the [event](https://assethub-polkadot.subscan.io/extrinsic/4671081-0?event=4671081-1) **`dmpqueue (ExecutedDownward)`**
- In that event check the parameters:
- **`outcome`** which should have value **`Incomplete`**
- **`message_id`** which shows the hash of the XCM Transfer.
### 2. From Para To Relay
- [Example XCM](https://polkadot.subscan.io/xcm_message/polkadot-94e07063a25d88f038dd6d5528a585f80fa446cb)
- Check in the Relay chain for the [event](https://polkadot.subscan.io/extrinsic/15821047-1?event=15821047-40) **`ump (ExecutedUpward)`**
- In that event check the parameters:
- **`Outcome`** which should have value **`Incomplete`**
- **`MessageId`** which shows the hash of the XCM Transfer.
### 3. From Para To Para
- [Example XCM](https://polkadot.subscan.io/xcm_message/polkadot-27abba0823e4ce8ee3711bde20ce317e4f67cf10)
- In the destination Parachain look for the [event](https://moonbeam.subscan.io/extrinsic/4518241-0?event=4518241-1) **`xcmpqueue (Fail)`**
- In that event check the parameters :
- **`error`** which should give the type of error (in this example is **`Barrier`**)
- **`message_hash`** which identifies the XCM Transfer.
#### Assets Trapped
- [Example XCM](https://polkadot.subscan.io/xcm_message/polkadot-3e74e95204faa6ecf3c81f5129b85f498b89cff2)
- In the destination Parachain look for the [event](https://interlay.subscan.io/extrinsic/3627057-1?event=3627057-8) **`xcmpqueue (Fail)`**
- In that event check the parameters :
- **`error`** which should give the type of error (in this example is **`TooExpensive`**)
- **`message_hash`** which identifies the XCM Transfer.
- **NOTE** : there is also another [event](https://interlay.subscan.io/extrinsic/3627057-1?event=3627057-7) called **`polkadotxcm (AssetsTrapped)`** which indicates that some assets have been trapped (and hence can be claimed).