Skip to main content
Blocktape

Crypto markets, protocols and policy

Failed Cross-Chain Messages: Check the State Before Retrying

A failed bridge or cross-chain call may be pending, verified, or reverted on arrival; check its stage and cause before resubmitting to avoid duplicate actions.

The Blocktape Editors 3 min read 945bfd

Cover artwork for Failed Cross-Chain Messages: Check the State Before Retrying

A failed cross-chain message should be retried only after you confirm whether the source transaction is final, the message reached its destination, and execution failed. Those are separate steps in many systems, so a delay or error at one stage does not by itself mean the original request needs to be sent again.

A source transaction can succeed while its message is still waiting for verification or delivery. Some protocols separate verification from execution: LayerZero’s documentation, for example, describes a verified message whose destination call can fail and be retried without resending from the source chain. Check the message’s status and identifier in the bridge or application interface before taking action.

For a closer look at how state requirements affect cross-chain design, see this guide to omnichain consistency needs. The distinction matters when an application depends on messages arriving in order or on destination data reflecting a particular source-chain state.

What does a failed cross-chain message mean?

A failed message can mean the source transaction reverted, the message is still in transit, or the destination contract rejected the call. These states call for different responses: a reverted source transaction may need a new submission, while an already verified message may need a destination retry.

Look up the transaction on both chains and follow the message identifier where the protocol provides one. Confirm the source transaction’s outcome, then check whether the destination records the message as pending, delivered, or failed; a wallet notification alone may not show which stage stopped.

Why do cross-chain messages fail on arrival?

Destination execution can fail when the receiving contract rejects the message’s data, its conditions are no longer met, or the transaction has too little execution gas. A temporary congestion or fee issue can also delay delivery, depending on how the protocol handles its relayer and execution fees.

Read the reported error before retrying. A gas-related failure may be recoverable with a supported retry method and adequate execution resources, while a contract logic error can recur until the underlying condition changes or the application fixes its code.

When should you retry a cross-chain message?

Retry when the source transaction succeeded, the message is confirmed at the destination, and the destination failure has a fixable cause. Use the original message’s retry or recovery path if the protocol offers one; a new source transaction may create a second instruction rather than resume the first.

  • Source reverted: Check the source-chain error and submit again only if you still want the action.
  • Message pending: Wait or check delivery status before initiating another transfer.
  • Destination execution failed: Identify the cause, then use the protocol’s retry process if available.
  • Status unclear: Verify the message identifier and balances on both chains before acting.

Do not use an administrative clear, skip, or burn operation as a routine retry. LayerZero documentation describes clearing as removing a pending message rather than executing it, and says the action cannot be reversed; recovery controls and permissions vary by protocol.

How can you avoid repeating the same failure?

Before sending, check the destination address, token or call parameters, required approvals, and any stated execution fee or gas settings. For repeated transfers or contract calls, confirm that the application can recognize duplicate instructions; message identifiers and application-level checks help systems avoid processing the same request twice.

Keep the source transaction hash and message identifier until the destination confirms completion. If the status remains ambiguous or the destination action involves funds, contact the application’s support channel with those identifiers before resubmitting; the next step depends on whether the original message is still pending, retryable, or already completed.

Related stories