---
title: "Retry failed orders in a multiswap"
method: POST
path: "/exchanges/multi/{multiId}/retry"
tags: ["Exchanges"]
---

# Retry failed orders in a multiswap

`POST /exchanges/multi/{multiId}/retry`

Retry a failed multiswap bundle. Only possible while the orders are within 30 minutes
of creation (deposit addresses still valid) — the existing UserOp is reset to PENDING and
`txData` (same shape as POST multi/{multiId}/tx/build) is returned so the frontend can
re-sign and submit immediately.

After 30 minutes, or for REFUNDED orders, this returns 400 — use POST /multi/recovery
to withdraw the stuck funds instead.

## Path parameters

- `multiId` string, required

## Request body

- RetryFailedOrdersRequest — Request body for POST /exchanges/multi/{multiId}/retry
  - `houdiniIds` string[] — Optional subset of orders to retry; defaults to all retryable orders

## Response `200`

Success

- RetryResult
  - `txData` MultiExchangeTxResult, required
    - `multiId` string, required
    - `chain` string, required — Chain kind of the from token (e.g. "solana", "evm")
    - `transactions` TxBatch[], required
      - `houdiniIds` string[], required — HoudiniIds of the orders included in this batch
      - `txData` union, required — Network-specific transaction data ready to broadcast
        - EvmBatchTxSlimData — Slim response returned to the frontend — backend stores the full userOp in DB
          - `userOpHash` string, required
          - `to` string, required
          - `data` string, required
          - `value` string, required
          - `chainId` number, double, required
          - `tokenAmount` string, required
        - union — Union — add new network types here as they are supported
          - SolanaBatchTxData
            - `data` string, required — Serialized transaction bytes (base64)
          - EvmBatchTxData
            - `userOp` EvmUserOp, required — EntryPoint v0.7 unpacked UserOp. User pays gas from Smart Account balance — no paymaster.
              - …
            - `userOpHash` string, required
            - `chainId` number, double, required
            - `entryPoint` string, required
            - `to` string, required
            - `smartAccountAddress` string, required
            - `gasEstimate` EvmGasEstimate, required
              - …
            - `data` string, required
            - `value` string, required
            - `tokenAmount` string, required
    - `depositNeeded` string — How much more native ETH (wei) the SA needs before submission; "0" means already funded
    - `saCurrentBalance` string — Current SA native balance in wei

## Other responses

- `400` — Bad request
- `404` — Not found
- `422` — Validation Failed
- `500` — Internal Server Error

---

[API](https://skmtc.net/houdiniswap/apis/houdiniswap-backend.md) · [All operations](https://skmtc.net/houdiniswap/apis/houdiniswap-backend/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/houdiniswap/houdiniswap-backend/versions/2063dbc88d59/schema)
