Error Handling and Recovery
HTTP Status Codes
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).
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.
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

