CCIP v2.0.0 Errors API Reference

This page lists custom errors across CCIP contracts.

Use it to:

  • map revert selectors to error names
  • identify failure causes
  • locate the originating contract

Use the linked contract pages for full context on where and how each error occurs.

Error selectors

SelectorErrorContract
0xd7f73334InvalidRouter(address)CCIPReceiver
0xd2316edeOnlyOffRamp()Router
0xae236d9cUnsupportedDestinationChain(uint64)Router
0x07da6ee6InsufficientFeeTokenAmount()Router / OnRamp
0x1841b4e1InvalidMsgValue()Router
0x49647790OffRampMismatch(uint64,address)Router
0xe417b80bFailedToSendValue()Router
0xc1483715BadARMSignal()Router
0x5cf04449CannotSendZeroTokens()OnRamp
0x83c758a6DestinationChainNotSupportedByCCV(address,uint64)OnRamp
0xbf16aab6UnsupportedToken(address)OnRamp
0xbff66cefDestinationChainNotSupported(uint64)OnRamp
0xed053c59SourceChainNotEnabled(uint64)OffRamp
0x403b06aeOptionalCCVQuorumNotReached(uint256,uint256)OffRamp
0x88f80aa2InvalidVerifierResultsLength(uint256,uint256)OffRamp
0x0a8d6e8cReceiverError(bytes)OffRamp
0x9fe2f95aTokenHandlingError(address,bytes)OffRamp

Router

UnsupportedDestinationChain(uint64 chainSelector)

Selector: 0xae236d9c
When: Destination chain is not configured
Contract: Router

error UnsupportedDestinationChain(uint64 chainSelector);

InsufficientFeeTokenAmount()

Selector: 0x07da6ee6 When: Provided fee is too low Contract: Router

error InsufficientFeeTokenAmount();

InvalidMsgValue()

Selector: 0x1841b4e1 When: Native value is provided incorrectly Contract: Router

error InvalidMsgValue();

OnlyOffRamp()

Selector: 0xd2316ede When: Unauthorized caller invokes routeMessage Contract: Router

error OnlyOffRamp();

OffRampMismatch(uint64 chainSelector, address offRamp)

Selector: 0x49647790 When: Removing a non-existent OffRamp Contract: Router

error OffRampMismatch(uint64 chainSelector, address offRamp);

FailedToSendValue()

Selector: 0xe417b80b When: Native transfer fails Contract: Router

error FailedToSendValue();

BadARMSignal()

Selector: 0xc1483715 When: RMN signals unsafe state Contract: Router

error BadARMSignal();

CCIPReceiver

InvalidRouter(address router)

Selector: 0xd7f73334 When: Non-router calls ccipReceive Contract: CCIPReceiver

error InvalidRouter(address router);

OnRamp

CannotSendZeroTokens()

Selector: 0x5cf04449 When: Attempting to send zero tokens Contract: OnRamp

error CannotSendZeroTokens();

DestinationChainNotSupportedByCCV(address ccvAddress, uint64 destChainSelector)

Selector: 0x83c758a6 When: CCV does not support the destination chain Contract: OnRamp

error DestinationChainNotSupportedByCCV(address ccvAddress, uint64 destChainSelector);

UnsupportedToken(address token)

Selector: 0xbf16aab6 When: Token is not supported for transfer Contract: OnRamp

error UnsupportedToken(address token);

DestinationChainNotSupported(uint64 destChainSelector)

Selector: 0xbff66cef When: Destination chain is not supported Contract: OnRamp

error DestinationChainNotSupported(uint64 destChainSelector);

InsufficientFeeTokenAmount()

Selector: 0x07da6ee6 When: Provided fee is too low Contract: OnRamp

error InsufficientFeeTokenAmount();

OffRamp

SourceChainNotEnabled(uint64 sourceChainSelector)

Selector: 0xed053c59 When: Message is received from an unsupported source chain Contract: OffRamp

error SourceChainNotEnabled(uint64 sourceChainSelector);

OptionalCCVQuorumNotReached(uint256 wanted, uint256 got)

Selector: 0x403b06ae When: Not enough optional CCVs validated the message Contract: OffRamp

error OptionalCCVQuorumNotReached(uint256 wanted, uint256 got);

InvalidVerifierResultsLength(uint256 expected, uint256 got)

Selector: 0x88f80aa2 When: Verifier result length mismatch Contract: OffRamp

error InvalidVerifierResultsLength(uint256 expected, uint256 got);

ReceiverError(bytes err)

Selector: 0x0a8d6e8c When: Receiver contract reverts during execution Contract: OffRamp

error ReceiverError(bytes err);

TokenHandlingError(address target, bytes err)

Selector: 0x9fe2f95a When: Token transfer or pool interaction fails Contract: OffRamp

error TokenHandlingError(address target, bytes err);

Token pools

Token pool contracts define additional errors for:

  • token allowlist violations
  • rate limit enforcement
  • fee policy constraints
  • transfer restrictions

See:

Get the latest Chainlink content straight to your inbox.