srcUAto the UA at the destination
dstUA. Once the message is received by
dstUA, the message is considered delivered (transitioning from
dstUAsuccess OK() A2:
dstUAfails with caught error/exception
dstUAfails with uncaught error/exception
dstUAis expected to store the message in their contract to be retried (LayerZero will not store any successfully delivered messages).
dstUAis expected to monitor and retry
STOREDmessages on behalf of its users.
dstUAis expected to gracefully handle all errors/exceptions when receiving a message, and any uncaught errors/exceptions (including out-of-gas) will cause the message to transition into
STOREDmessage will block the delivery of any future message from
dstUAon the same destination chain and can be retried until the message becomes
dstUAshould implement a handler to transition the stored message from
SUCCESS. If a bug in
dstUAcontract results in an unrecoverable error/exception, LayerZero provides a last-resort interface to force resume message delivery, only by the
dstChain. In other words, the message order nonce is shared by all `dstUA` on the same
dstChain. That's why a
STOREDmessage blocks the message pathway from
dstUAon the same destination chain. If it isn't necessary to preserve the sequential nonce property for a particular
dstUAthe sender must add the nonce into the payload and handle it end-to-end within the UA. UA can implement a non-blocking pattern in their contract code.