On busier OrderBooks, it's just like an exchange. Users are buying and selling.
Right now Cashtab only loads the state of the OrderBook once. If another user creates a new listing or buys an existing listing, the OrderBook does not refresh for users who already have it open. Then if they try to accept an offer, its utxo may no longer exist and they get an error.
Solution is to use websockets so that the OrderBook updates itself according to agora activity as it happens. It is possible to optimize this going forward for speed. For a first pass, we only refresh the OrderBook every time we see an agora action related to its token added to the mempool.