Use Non-blocking pattern instead of blocking pattern in lzReceive
LayerZero provides ordered delivery of messages from a given sender to a destination chain, i.e. srcUA-> dstChain. Therefore, when a transaction fails on the destination chain (eg: if lzReceive
reverts for some reason), the channel between the source and destination is blocked.
If it isn't necessary to preserve the sequential nonce property then the non-blocking pattern should be used. An example implementation of non-blocking pattern by LayerZero is here: https://github.com/LayerZero-Labs/solidity-examples/blob/main/contracts/lzApp/NonblockingLzApp.sol ↗
This issue has been acknowledged by Y2K Finance, and a fix was implemented in commit c0df7ed0↗.