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
| Selector | Error | Contract |
|---|---|---|
| 0xd7f73334 | InvalidRouter(address) | CCIPReceiver |
| 0xd2316ede | OnlyOffRamp() | Router |
| 0xae236d9c | UnsupportedDestinationChain(uint64) | Router |
| 0x07da6ee6 | InsufficientFeeTokenAmount() | Router / OnRamp |
| 0x1841b4e1 | InvalidMsgValue() | Router |
| 0x49647790 | OffRampMismatch(uint64,address) | Router |
| 0xe417b80b | FailedToSendValue() | Router |
| 0xc1483715 | BadARMSignal() | Router |
| 0x5cf04449 | CannotSendZeroTokens() | OnRamp |
| 0x83c758a6 | DestinationChainNotSupportedByCCV(address,uint64) | OnRamp |
| 0xbf16aab6 | UnsupportedToken(address) | OnRamp |
| 0xbff66cef | DestinationChainNotSupported(uint64) | OnRamp |
| 0xed053c59 | SourceChainNotEnabled(uint64) | OffRamp |
| 0x403b06ae | OptionalCCVQuorumNotReached(uint256,uint256) | OffRamp |
| 0x88f80aa2 | InvalidVerifierResultsLength(uint256,uint256) | OffRamp |
| 0x0a8d6e8c | ReceiverError(bytes) | OffRamp |
| 0x9fe2f95a | TokenHandlingError(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: