# Error Messages

When operating across different chains, two categories of errors may arise:

* Source Chain Revert : The error occurs within local contracts prior to reaching the GMP Gateway. In such instances, the error signature is returned as a data argument alongside a generic "estimateGas" error.

```
Error: execution reverted (unknown custom error) (action="estimateGas", data="...."
```

* Destination Chain: The error arises within the contracts on the remote chain when called by the GMP gateway after the source transaction is completed successfully. Consequently, the client contract on the source chain remains unaware of it. To identify the issue on the destination chain, one can retrieve the error signature by inspecting the transaction on the designated GMP explorer and searching for the provided error signature.

In both cases the error signature of the cause can be found in the following table:

<table data-full-width="true"><thead><tr><th>Glacis Custom Error</th><th>Error Signature</th></tr></thead><tbody><tr><td>DeliveryProviderCannotReceivePayment()</td><td>0x95d64fa0</td></tr><tr><td>GlacisAbstractAdapter__DestinationChainIdNotValid()</td><td>0x12f2ad92</td></tr><tr><td>GlacisAbstractAdapter__IDArraysMustBeSameLength()</td><td>0x4f3bb61c</td></tr><tr><td>GlacisAbstractAdapter__InvalidAdapterAddress()</td><td>0x44181faf</td></tr><tr><td>GlacisAbstractAdapter__InvalidChainId()</td><td>0x4428fe68</td></tr><tr><td>GlacisAbstractAdapter__NoAdapterConfiguredForChain()</td><td>0x3306d25e</td></tr><tr><td>GlacisAbstractAdapter__NoRemoteAdapterForChainId(uint256 chainId)</td><td>0xb295f036</td></tr><tr><td>GlacisAbstractAdapter__OnlyAdapterAllowed()</td><td>0x4c371e2d</td></tr><tr><td>GlacisAbstractAdapter__OnlyGlacisRouterAllowed()</td><td>0x8d0f010f</td></tr><tr><td>GlacisAbstractAdapter__SourceChainNotRegistered()</td><td>0xb798796f</td></tr><tr><td>GlacisAbstractRouter__GMPIDCannotBeZero()</td><td>0x4332f55b</td></tr><tr><td>GlacisAbstractRouter__InvalidAdapterAddress()</td><td>0xa46f71e2</td></tr><tr><td>GlacisAbstractRouter__OnlyAdaptersAllowed()</td><td>0x55ff424d</td></tr><tr><td>GlacisAccessControlClient__RouteAlreadyAdded()</td><td>0x9d0749e5</td></tr><tr><td>GlacisCCIPAdapter__PaymentTooSmallForAnyDestinationExecution()</td><td>0x9642d69e</td></tr><tr><td>GlacisCCIPAdapter__RefundAddressMustReceiveNativeCurrency()</td><td>0x4ae47585</td></tr><tr><td>GlacisClient__CanOnlyBeCalledByRouter()</td><td>0x7060f99c</td></tr><tr><td>GlacisClient__InvalidRouterAddress()</td><td>0x7b6c3d88</td></tr><tr><td>GlacisHyperlaneAdapter__FeeNotEnough()</td><td>0xf7baffe4</td></tr><tr><td>GlacisHyperlaneAdapter__OnlyMailboxAllowed()</td><td>0x56645bf6</td></tr><tr><td>GlacisHyperlaneAdapter__RefundAddressMustReceiveNativeCurrency()</td><td>0xead30a9a</td></tr><tr><td>GlacisHyperlaneAdapter__UnconfiguredOrigin()</td><td>0xaa4af996</td></tr><tr><td>GlacisLayerZeroAdapter__LZChainIdNotAccepted(uint256)</td><td>0xd764477d</td></tr><tr><td>GlacisRemoteCounterpartManager__MediatorsAndChainIDsMustHaveSameLength()</td><td>0x7f424dc4</td></tr><tr><td>GlacisRemoteCounterpartManager__RemoteCounterpartCannotHaveChainIdZero()</td><td>0x3e708a4c</td></tr><tr><td>GlacisRemoteCounterpartManager__RemoteCounterpartCannotHaveChainIdZero()</td><td>0x3e708a4c</td></tr><tr><td>GlacisRemoteCounterpartManager__RemoteCounterpartsAndChainIDsMustHaveSameLength()</td><td>0x5855bb7e</td></tr><tr><td>GlacisRouter__ClientDeniedRoute()</td><td>0x9cbf2224</td></tr><tr><td>GlacisRouter__FeeArrayMustEqualGMPArray()</td><td>0xbb767f66</td></tr><tr><td>GlacisRouter__FeeSumMustBeEqualToValue()</td><td>0x2e0b647c</td></tr><tr><td>GlacisRouter__GMPCountMustBeAtLeastOne()</td><td>0xdc62be97</td></tr><tr><td>GlacisRouter__GMPNotSupported()</td><td>0xed2e8008</td></tr><tr><td>GlacisRouter__ImpossibleGMPId(uint8 gmpId)</td><td>0x64d24020</td></tr><tr><td>GlacisRouter__MessageAlreadyReceivedFromGMP()</td><td>0x5bde8cde</td></tr><tr><td>GlacisRouter__MessageIdNotValid()</td><td>0x3245805f</td></tr><tr><td>GlacisRouter__MessageInputNotIdenticalForRetry()</td><td>0x1dd35f64</td></tr><tr><td>GlacisRouter__NotOwnerOfMessageToRetry()</td><td>0x7f2f6d96</td></tr><tr><td>GlacisRouter__OnlyAdaptersAllowed()</td><td>0xb519c5ed</td></tr><tr><td>GlacisRouter__RouteDoesNotExist()</td><td>0xeb470cd2</td></tr><tr><td>GlacisTokenClient__CanOnlyBeCalledByTokenRouter()</td><td>0x7e3d38a2</td></tr><tr><td>GlacisTokenMediator__DestinationChainUnavailable()</td><td>0x64b15c4d</td></tr><tr><td>GlacisTokenMediator__IncorrectTokenVariant(address, uint256)</td><td>0x8e291d85</td></tr><tr><td>GlacisTokenMediator__OnlyTokenMediatorAllowed()</td><td>0x73d0e434</td></tr><tr><td>GlacisWormholeAdapter__AlreadyProcessedVAA()</td><td>0xbfe7efae</td></tr><tr><td>GlacisWormholeAdapter__NotEnoughValueForCrossChainTransaction()</td><td>0x0c08e04a</td></tr><tr><td>GlacisWormholeAdapter__OnlyRelayerAllowed()</td><td>0x200b2d18</td></tr><tr><td>GlacisWormholeAdapter__RefundAddressMustReceiveNativeCurrency()</td><td>0xa93640ac</td></tr><tr><td>IGlacisAdapter__ChainIsNotAvailable(uint256 toChainId)</td><td>0xb0baf5b5</td></tr><tr><td>IXERC20Lockbox_Native()</td><td>0x46e927a0</td></tr><tr><td>IXERC20Lockbox_NotNative()</td><td>0x8467cb4b</td></tr><tr><td>IXERC20Lockbox_WithdrawFailed()</td><td>0xab8a5c34</td></tr><tr><td>IXERC20_NotFactory()</td><td>0x2029e525</td></tr><tr><td>IXERC20_NotHighEnoughLimits()</td><td>0x0b6842aa</td></tr><tr><td>InsufficientRelayerFunds(uint256 msgValue, uint256 minimum)</td><td>0x02216bc0</td></tr><tr><td>InvalidDeliveryVaa(string reason)</td><td>0xb72c3b7f</td></tr><tr><td>InvalidEmitter(bytes32 emitter, bytes32 registered, uint16 chainId)</td><td>0x776c06ce</td></tr><tr><td>InvalidMsgValue(uint256 msgValue, uint256 totalFee)</td><td>0x1f89f671</td></tr><tr><td>InvalidOverrideGasLimit()</td><td>0xafe343e8</td></tr><tr><td>InvalidOverrideReceiverValue()</td><td>0xe3704808</td></tr><tr><td>InvalidOverrideRefundPerGasUnused()</td><td>0x0cfb7d9e</td></tr><tr><td>InvalidPayloadId(uint8 parsed, uint8 expected)</td><td>0x79cbfdbe</td></tr><tr><td>InvalidPayloadLength(uint256 received, uint256 expected)</td><td>0xc37906a0</td></tr><tr><td>InvalidVaaKeyType(uint8 parsed)</td><td>0x249ede70</td></tr><tr><td>NotAnEvmAddress(bytes32)</td><td>0x33b960d0</td></tr><tr><td>ReentrantDelivery(address msgSender, address lockedBy)</td><td>0x20b84ced</td></tr><tr><td>RequestedGasLimitTooLow()</td><td>0x71ae1330</td></tr><tr><td>RequesterNotWormholeRelayer()</td><td>0x72132d5a</td></tr><tr><td>TargetChainIsNotThisChain(uint16 targetChain)</td><td>0xd8215fc9</td></tr><tr><td>VaaKeysDoNotMatchVaas(uint8 index)</td><td>0xeb5e161c</td></tr><tr><td>VaaKeysLengthDoesNotMatchVaasLength(uint256 keys, uint256 vaas)</td><td>0xb5ef0f68</td></tr><tr><td>XERC20__OnlyBridge()</td><td>0xe5cbd60e</td></tr></tbody></table>

<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.glacislabs.com/glacis-core/troubleshooting/error-messages.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
