Recover a transfer
Most transfers either complete on the destination chain or remain in progress while the cross-chain message is verified and executed. If a trusted message reaches Omnisea but destination execution fails, the transfer can be retried or restored.
First checks
- Confirm the source transaction succeeded.
- Open the transfer in the Omnisea app or by transaction hash.
- Check whether the destination transaction is still pending.
- If the transfer is delayed, wait before attempting recovery.
Cross-chain messages can take longer during network congestion or when executor gas is busy.
Retry
Retry attempts to execute the same destination action again.
Use retry when the destination issue can be fixed, for example:
- the original transfer did not buy enough destination gas
- a temporary token or network issue has cleared
- a representation deployment or mint can now complete
Anyone can call retry for a cached failed message. The recovered tokens still follow the original transfer payload.
Restore
Restore sends the transfer back to the source chain.
Use restore when retry is not practical, for example:
- the destination route is not currently executable
- the recipient wants to unwind instead of waiting
- a destination token restriction keeps failing
Restore pays the LayerZero messaging cost needed to return the asset to the source chain. It does not collect a new Omnisea fixed protocol fee.
What cannot be changed
Retry and restore do not let callers rewrite the original transfer:
- the token route stays the same
- the original recipient data stays the same for retry
- restore returns to the source-side owner path encoded by the bridge
- arbitrary callers cannot redirect funds to themselves
Composition failures
Optional destination work uses LayerZero lzCompose. Omnisea credits the bridged asset before queueing composition, so a failed composer is not a failed transfer and cannot be retried or restored through the bridge recovery functions. Retry that compose message through LayerZero instead.
For integrator-level details, see Failed messages.