Retry & Reconciliation¶
Use retries for temporary failures, not for rejected or uncertain trading actions. If an order request may have reached Nubra or the exchange, check the latest order state before sending another request.
Safe to Retry¶
- Read-only APIs such as instruments, holdings, funds, and historical data.
- WebSocket reconnect and re-subscribe.
- Rate-limit failures after the allowed wait window.
- Temporary
500or503errors where no order execution was attempted.
Unsafe to Retry¶
- Order placement when the request timed out after reaching the OMS.
- Modify or cancel when final order state is unknown.
- RMS, margin, holdings, price band, aggressor limit, or lot-size rejection.
- Validation failures.
- Authentication failures before the session is repaired.
Retry Timing¶
Attempt 1 -> wait 1 sec
Attempt 2 -> wait 2 sec + jitter
Attempt 3 -> wait 5 sec + jitter
Stop -> reconcile or alert
Use a client reference, strategy tag, or idempotency key wherever available. This helps you detect the same trading intent if the network response is lost.
Order Status Check¶
Order timeout
|
Check WebSocket order updates
|
Query orderbook / recent orders
|
Match by order_id, basket_id, strategy tag, symbol, side, qty, timestamp
|
Found?
| |
Yes No
| |
Update Poll bounded times
state |
v
Contact support if unresolved
Use this check for placement, modify, cancel, multi-order, and flexi-basket actions before sending a new request.