Retrying safely
The API is stateless and re-reads live state each round, so callingcloseTransactions again after a failure is always safe. Before resubmitting a transaction after a timeout, check whether it already landed. A signed transaction is valid until its validUntilLedger.
Show users the plain-language message from blockers and error bodies, not raw status codes or stack traces.