The command did what it says. data holds the result.
Use data. Look at warnings.
error
1 or 2
It failed, and the CLI knows the node did not act on it (nothing was sent, the node refused, or it was a read).
Branch on error.code. Safe to fix and retry.
uncertain
1
A request was (or may have been) published and the CLI cannot prove what happened, or the node accepted it and the local write failed.
Do not retry blindly. Check the order first. See Recovering.
uncertain only exists for commands that publish a write (order new, the takes, the
invoices, the trade steps) and for order sync’s partial local save. Pure reads
(order list, order info, message list, schema) are ok or error only: they are
safe to repeat.
Here persistence on an uncertain outcome is about the trade index: it is spent
whenever the request may have been published, so the next attempt uses a fresh key.
For the trade steps (fiat-sent, release, cancel) an uncertain outcome may also show
applied or failed: the maker of a range order reserved a trade index for the child
order, and persistence tells whether it was recorded.
Most of the time status + error.code is enough. Stages answer two finer questions:
“Could the node have acted?” — publication is published or unknown.
“Is my local store in step?” — persistence is failed ⇒ the node moved on but the
local row did not; follow the warning or error advice (often: order info, order sync).