-
Notifications
You must be signed in to change notification settings - Fork 407
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
19 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
--- | ||
section: ccip | ||
date: Last Modified | ||
title: "CCIP Manual Execution" | ||
whatsnext: { "Learn CCIP best practices": "/ccip/best-practices" } | ||
--- | ||
|
||
CCIP messages are eligible for manual execution if either of these conditions is met: if the execution on the receiver contract failed or the CCIP message timed out (the current timeout is set at 8 hours). The latter scenario might occur in extreme network congestion, where CCIP cannot deliver the message within the specified time frame. Consider the following important points: | ||
|
||
- Ineffectiveness of Manual Execution for Business Logic Errors: If the failure is due to a flaw in the receiver contract's business logic, manual execution will not rectify the issue. In our example, the failure is attributed to an insufficient gas limit for message delivery. Therefore, increasing the gas limit would allow for successful manual execution of the message delivery. | ||
- Decoupling CCIP Message Reception and Business Logic: We advise separating the reception of CCIP messages from the core business logic of the contract. Implementing 'escape hatches' or fallback mechanisms is recommended to gracefully manage situations where the business logic encounters issues. To explore this concept further, refer to the [Defensive example](/ccip/tutorials/programmable-token-transfers-defensive). | ||
- Manual Execution by Any Account: Any account can manually execute a CCIP message that is eligible for manual execution, but the executing account must have sufficient native gas tokens (such as ETH on Ethereum or MATIC on Polygon) to cover the gas costs associated with the delivery of the CCIP message. | ||
- Batching Support: In cases where a single transaction includes multiple CCIP messages, the system provides a convenient batching feature. This allows you to manually execute all failed CCIP messages within the transaction collectively rather than addressing each one individually. | ||
- Time Limitations in CCIP Explorer: Currently, the [CCIP explorer](https://ccip.chain.link/) does not support the manual execution of CCIP messages older than 48 hours. Please get in touch with us for assistance if you need to manually execute messages older than 48 hours on mainnets. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters