Skip to main content
Version: 1.0.0

manual-exec

Supported chain families:
EVM iconEVMSolana iconSolanaAptos iconAptos

Manually execute pending or failed CCIP messages on the destination chain.

Synopsis

Bash
ccip-cli manual-exec <tx-hash> [options]

Description

The manual-exec command allows you to manually trigger the execution of a CCIP message that is stuck or has failed. It retrieves the original request, calculates the merkle proof, fetches any required offchain data, and submits the execution transaction.

Arguments

ArgumentTypeRequiredDescription
<tx-hash>stringYesTransaction hash of the original CCIP request on source chain

Options

Message Selection

OptionTypeDefaultDescription
--log-indexnumber-Select a specific message by log index when multiple messages exist in one transaction

Gas Options

OptionAliasTypeDefaultDescription
--gas-limit-L, --compute-unitsnumber-Override gas limit for receiver callback. 0 keeps the original request value.
--tokens-gas-limit-number-Override gas limit for token pool releaseOrMint calls. 0 keeps original.
--estimate-gas-limit-number-Estimate gas limit with percentage margin (e.g., 10 for +10%). Conflicts with --gas-limit.

Wallet

OptionAliasTypeDescription
--wallet-wstringWallet for signing transactions. See Configuration.

Solana-Specific Options

OptionTypeDefaultDescription
--force-bufferbooleanfalseUse buffer for messages too large for a single transaction.
--force-lookup-tablebooleanfalseCreate a lookup table for accounts to fit in transaction.
--clear-leftover-accountsbooleanfalseClear buffers or lookup tables from previous attempts.

Sui-Specific Options

OptionTypeDefaultDescription
--receiver-object-idsstring[]-Receiver object IDs for Sui execution (e.g., 0xabc...).

Queue Execution

OptionTypeDefaultDescription
--sender-queuebooleanfalseExecute all pending messages from the same sender, starting from the provided transaction.
--exec-failedbooleanfalseInclude failed messages in queue execution. Requires --sender-queue.

See Configuration for global options (--rpcs, --format, etc.).

Command Builder

Build your manual-exec command interactively:

Unknown command: manual-exec

Available commands: send, show, manual-exec

When to Use

Manual execution is needed when:

ScenarioDescription
Message stuck pendingDON hasn't executed it within expected timeframe
Previous execution failedNeed to retry with different gas parameters
Out-of-order execution blockedEarlier message in sender queue failed

Examples

Execute a pending message

Bash
ccip-cli manual-exec 0xafd36a0b99d5457e403c918194cb69cd070d991dcbadc99576acfce5020c0b6b \
--rpc https://eth-sepolia.example.com \
--rpc https://arb-sepolia.example.com \
--wallet ledger

Override gas limit

Bash
ccip-cli manual-exec 0xabc123... \
--gas-limit 500000 \
--wallet ledger

Estimate and apply gas limit with margin

Bash
ccip-cli manual-exec 0xabc123... \
--estimate-gas-limit 15 \
--wallet ledger

Solana execution with buffer

For large messages on Solana:

Bash
ccip-cli manual-exec 0xabc123... \
--wallet ledger \
--gas-limit 500000 \
--force-buffer \
--clear-leftover-accounts

Sui execution with receiver objects

For Sui destinations that require receiver object IDs:

Bash
ccip-cli manual-exec 0xabc123... \
--wallet ledger \
--receiver-object-ids 0xabc... 0xdef...

Execution Flow

  1. Fetches the original request from the source chain
  2. Retrieves the commit report from the destination chain
  3. Calculates the merkle proof for manual execution
  4. Fetches any required offchain token data (e.g., CCTP attestations)
  5. Submits the execution transaction to the destination chain

Solana Considerations

Solana transactions have size limits. For large messages:

StepOptionDescription
1--force-bufferSends report in chunks
2--force-lookup-tableCreates address lookup table for accounts
3--clear-leftover-accountsCleans up from aborted attempts

After successful execution, buffers auto-clear. Lookup tables require a grace period before deletion.

See Also

Exit Codes

CodeMeaning
0Success - execution transaction submitted
1Error (network failure, execution failed, invalid arguments)

Use in scripts:

Bash
ccip-cli manual-exec $TX_HASH --wallet ledger --format json || exit $?