CCIP v1.5.1 Error Codes and Messages API Reference

When invoking the ccipSend function, it is possible to encounter various errors. These might be thrown either by the CCIP router or by one of the downstream contracts called by the CCIP router. Below is a compiled list of potential errors you might encounter. Referencing this list will enable you to capture and handle these exceptions gracefully.

Router Errors

Error Parameters Error Selector Description
UnsupportedDestinationChain uint64 destChainSelector 0xae236d9c

Thrown when sending to an unsupported destination chain.

InsufficientFeeTokenAmount - 0x07da6ee6

Thrown when the fee token amount provided is less than required.

InvalidMsgValue - 0x1841b4e1

Thrown when msg.value is non-zero for non-native fee token payments.

BadARMSignal - 0xc1483715

Thrown when the RMN (Risk Management Network) has cursed the network.

SafeERC20FailedOperation - 0x70c9c181

Thrown when an ERC20 token transfer fails.

OnRamp Errors

Error Parameters Error Selector Description
CursedByRMN - 0x53ad11d8

Thrown when the RMN (Risk Management Network) has cursed the destination chain.

RouterMustSetOriginalSender - 0xa4ec7479

Thrown when the router has not set the original sender address.

MustBeCalledByRouter - 0x1c0a3529

Thrown when the caller is not the configured router address.

InvalidChainSelector uint64 destChainSelector 0xd9a9cd68

Thrown when the destination chain selector does not match the configured one.

InvalidExtraArgsTag - 0x5247fdce

Thrown when an invalid extra arguments tag is used.

MessageTooLarge uint256 maxSize
uint256 actualSize
0x86933789

Thrown when the message size exceeds the maximum allowed size.

MessageGasLimitTooHigh - 0x4c4fc93a

Thrown when the gas limit exceeds the maximum per-message gas limit.

CannotSendZeroTokens - 0x5cf04449

Thrown when attempting to send a token with amount zero.

MaxFeeBalanceReached - 0xe5c7a491

Thrown when the onRamp has reached its maximum fee storage capacity.

UnsupportedNumberOfTokens - 0x4c056b6a

Thrown when too many tokens are involved in the transfer.

UnsupportedToken address token 0xbf16aab6

Thrown when attempting to send an unsupported token.

ExtraArgOutOfOrderExecutionMustBeTrue - 0xee433e99

Thrown when enforceOutOfOrder is true but allowOutOfOrderExecution is false.

SourceTokenDataTooLarge address token 0x36f536ca

Thrown when the source token data exceeds the configured maximum size.

Rate Limiter Errors

Error Parameters Error Selector Description
BucketOverfilled - 0x9725942a

Thrown when the token bucket contains more tokens than its capacity.

OnlyCallableByAdminOrOwner - 0xf6cd5620

Thrown when a function is called by an address that is not the admin or owner.

TokenMaxCapacityExceeded uint256 capacity
uint256 requested
address tokenAddress
0x1a76572a

Thrown when attempting to consume more tokens than the bucket's maximum capacity.

TokenRateLimitReached uint256 minWaitInSeconds
uint256 available
address tokenAddress
0xd0c8d23a

Thrown when attempting to consume more tokens than currently available in the bucket.

AggregateValueMaxCapacityExceeded uint256 capacity
uint256 requested
0xf94ebcd1

Thrown when attempting to consume more aggregate value than the bucket's maximum capacity.

AggregateValueRateLimitReached uint256 minWaitInSeconds
uint256 available
0x15279c08

Thrown when attempting to consume more aggregate value than currently available in the bucket.

Token (ERC20) Errors

Error Description
ERC20: burn amount exceeds balance

Thrown when the amount to be burned exceeds the pool balance.

ERC20: transfer amount exceeds allowance

Thrown when the transfer amount exceeds the allowance.

BurnMintERC20 Errors

Error Parameters Error Selector Description
MaxSupplyExceeded uint256 supplyAfterMint 0xcbbf1113

Thrown when a mint operation would cause the total supply to exceed the maximum supply limit.

InvalidRecipient address recipient 0x17858bbe

Thrown when attempting to transfer or approve tokens for the contract itself (address(this)).

Token Pool Errors

Error Parameters Error Selector Description
InvalidToken address token 0x961c9a4f

Thrown when the token being locked or burned is not supported by the pool.

CursedByRMN - 0x53ad11d8

Thrown when the RMN (Risk Management Network) has cursed the network.

SenderNotAllowed address sender 0xd0d25976

Thrown when the sender is not on the allowlist (when allowlist is enabled).

ChainNotAllowed uint64 remoteChainSelector 0xa9902c7e

Thrown when the remote chain selector is not supported.

CallerIsNotARampOnRouter address caller 0x728fe07b

Thrown when the caller is not a valid onRamp for the given chain on the Router.

Get the latest Chainlink content straight to your inbox.