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/ordersreturned (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