Class: CCIPDestExecutionRevertError
Defined in: errors/specialized.ts:3752
Thrown when the destination pool's releaseOrMint simulation reverts. A revert means the
message would not execute on the destination, so the send is blocked — regardless of whether the
SDK recognizes the specific error. Rather than classify the revert into bespoke error subclasses,
this single error carries the raw encoded revert in context.revert so the caller can decode it
with the SDK's standard parse (EVMChain.parse(context.revert)) and branch on the exact cause;
the message also includes a best-effort decoded name for convenience.
isTransient reflects whether the specific revert typically clears on its own — a liquidity
shortfall, an inbound rate/bridge limit, or an RMN curse (true, retry may later succeed) versus
a mint-authority or lane-config problem (false, needs a fix). It is passed in by the caller via
options.isTransient; when omitted it defaults to false.
Example
import { CCIPDestExecutionRevertError, EVMChain } from '@chainlink/ccip-sdk'
try {
await estimateReceiveExecution({ source, dest, routerOrRamp, message })
} catch (error) {
if (error instanceof CCIPDestExecutionRevertError) {
const parsed = EVMChain.parse(error.context.revert) // decode the raw revert
console.log(`Dest execution would revert: ${parsed?.error}`, 'retryable:', error.isTransient)
}
}
Extends
Constructors
Constructor
new CCIPDestExecutionRevertError(
detail:string,options?:CCIPErrorOptions):CCIPDestExecutionRevertError
Defined in: errors/specialized.ts:3760
Creates a destination-execution revert error.
Parameters
| Parameter | Type | Description |
|---|---|---|
detail | string | Best-effort decoded revert for the message (name + data, or raw selector). |
options? | CCIPErrorOptions | Optional error options. Put the raw encoded revert in context.revert for the caller to parse, and pass isTransient when the revert is one that recovers on its own. |
Returns
CCIPDestExecutionRevertError
Overrides
Properties
_isCCIPError
readonly_isCCIPError:true
Defined in: errors/CCIPError.ts:30
Brand for cross-module identification (dual package hazard).
Inherited from
code
readonlycode:CCIPErrorCode
Defined in: errors/CCIPError.ts:32
Machine-readable error code.
Inherited from
context
readonlycontext:Record<string,unknown>
Defined in: errors/CCIPError.ts:34
Structured context (IDs, addresses).
Inherited from
isTransient
readonlyisTransient:boolean
Defined in: errors/CCIPError.ts:36
True if retry may succeed.
Inherited from
name
readonlyname:"CCIPDestExecutionRevertError"='CCIPDestExecutionRevertError'
Defined in: errors/specialized.ts:3753
Overrides
recovery?
readonlyoptionalrecovery?:string
Defined in: errors/CCIPError.ts:40
Recovery suggestion.
Inherited from
retryAfterMs?
readonlyoptionalretryAfterMs?:number
Defined in: errors/CCIPError.ts:38
Retry delay in ms.
Inherited from
Methods
toJSON()
toJSON():
Record<string,unknown>
Defined in: errors/CCIPError.ts:105
Serializes the error for logging.
Use this instead of JSON.stringify(error) directly, as Error properties
are non-enumerable and would be lost.
Returns
Record<string, unknown>
An object containing all error properties
Inherited from
from()
staticfrom(error:unknown,code?:CCIPErrorCode):CCIPError
Defined in: errors/CCIPError.ts:89
Wraps an unknown caught value in a CCIPError.
Useful for normalizing errors in catch blocks.
Parameters
| Parameter | Type | Description |
|---|---|---|
error | unknown | The error to wrap |
code? | CCIPErrorCode | Optional error code (defaults to 'UNKNOWN') |
Returns
A CCIPError wrapping the original error
Inherited from
isCCIPError()
staticisCCIPError(error:unknown):error is CCIPError
Defined in: errors/CCIPError.ts:73
Type guard for CCIPError.
Prefer this over instanceof to handle the dual package hazard
when multiple versions of the SDK may be present.
Parameters
| Parameter | Type | Description |
|---|---|---|
error | unknown | The error to check |
Returns
error is CCIPError
True if the error is a CCIPError instance