When it fires
GET /v1/markets/{id}/quote asked the market’s on-chain program for a price and it refused: it cannot price this request in its current on-chain state. A typical cause is market state that makes the pricing maths fail (for example a division by zero).
This is the market’s own, deterministic answer. Sending the same request again gets the same answer until the market’s on-chain state changes.
Why it is not a 503
DEPENDENCY_UNAVAILABLE (503) means the API could not read the chain at all (a timeout, a transport error, a provider rate limit), so retrying can help. MARKET_NOT_QUOTABLE means the read succeeded and the market refused, so retrying cannot help. That makes it a 4xx.
How to fix
- Don’t retry the same quote in a loop.
- Check the market with
GET /v1/markets/{id}. If it does not accept trades, you getMARKET_NOT_TRADEABLEinstead. - Try a different
outcomeIndexoramount; a refusal can be specific to one request. - If a tradeable market refuses every quote, report it to Kash support with the
requestId.