LayerHopDocsLaunch app (opens in a new tab)

GASLESS_FAILED

Gasless order rejected: The relayer rejected the signed gasless order (bad signature, wrong signer, invalid approval, or not enough balance or allowance).

HTTP status Retry
422 after a new quote

Where it comes from: POST /v1/orders/gasless (mapped from the 0x relayer).

Causes#

  • A signature does not match the typed data POST /v1/orders returned (it was changed before signing, or signed by another wallet).
  • The wallet is a smart-contract wallet and the approval type needs a plain ECDSA signature.
  • The wallet's balance of the sell token dropped below the quoted amount after quoting.

How to fix#

  • Sign the typed data exactly as returned, from the quote's sender, and submit within the quote's lifetime.
  • Check the balance, then get a new quote and sign again. Nothing moved: the relayer rejected the order before sending a transaction.

Example response#

JSON
{
  "error": {
    "code": "GASLESS_FAILED",
    "message": "{\n  \"error\": {\n    \"code\": \"GASLESS_FAILED\",\n    \"message\": \"0x: INVALID_SIGNER signer does not match taker\",\n    \"requestId\": \"0d5e1f6a-…\",\n    \"docsUrl\": \"https://docs.layerhop.com/errors/GASLESS_FAILED\"\n  }\n}",
    "requestId": "0d5e1f6a-3b2c-4d1e-8f9a-7b6c5d4e3f21",
    "docsUrl": "https://docs.layerhop.com/errors/GASLESS_FAILED"
  }
}

See Error handling & retries for a retry strategy, and the error catalog for every code.

Last updated