# TradeError

> Error name in a streaming error: the trade was refused or is being held. `stringCode` says which, and `metadata.sent` says whether anything reached the broker.

Source: https://tickwire.io/docs/errors/tradeerror/

WebSocket error frame.

**Likely causes:**

- A pre-trade hook is holding the order (`stringCode: TICKWIRE_HELD`).
- The order failed a check or the broker refused it.

**What to do:** Read `stringCode`, `message` and `metadata`, fix the order if needed, and send a new one only if `metadata.sent` is false.

**Retry:** No. The same request gets the same answer; change something first.

Listed under [Streaming](https://tickwire.io/docs/errors/#streaming) in [Errors](https://tickwire.io/docs/errors/). Send the error's `requestId` to support and we can find the request.
