For the complete documentation index, see llms.txt. This page is also available as Markdown.

Error Handling and Recovery

HTTP Status Codes

Code
Meaning

400

Invalid request parameters

403

Invalid or missing api-key

404

Resource not found

429

Rate limit exceeded

500

Internal server error

Error Response Format

All errors return a JSON object with an error field containing a message:

{
  "error": {
    "message": "description of the error"
  }
}

For application-level errors (e.g. PusherError), the response also includes a code field:

{
  "error": {
    "code": "NOT_SMART_ACCOUNT",
    "message": "Address has no deployed code — not a smart account"
  }
}

Recovery Endpoints

When a cross-chain transaction gets stuck, these endpoints help resolve the situation.

POST /tx/create/emergency

Build a transaction to return funds to the sender when delivery is stuck (destination.emergency is true).

Field
Type
Description

requestId

string

The request ID from the ComplexOpProcessed event

signature

string

EIP-191 signature from the original sender (see below)

Generating the signature:

The server expects an EIP-191 personal sign over the keccak256 hash of the requestId string. The signer must be the original sender address.

Full example:

POST /tx/create/retry

Retry a failed delivery. Uses the same signature format as the emergency endpoint.

Field
Type
Description

requestId

string

The request ID from the ComplexOpProcessed event

signature

string

EIP-191 signature from the original sender

POST /tx/create/resumeBr

Resume a paused bridge relay.

POST /tx/create/cancelBr

Cancel a pending bridge relay.

Last updated