API Errors

Vertex API errors.
List of possible error values in the API Response:
{
"status": "success",
"error": null
}
Warning: this list is going to be revised and updated in the coming weeks. We will communicate in appropriate channels about these changes.

Execute / Query API

Error Value
Description
Endpoints
invalid price: not divisible by increment
The order price must be an increment of price_increment_x18; use All products query to see current price increment of a product in book_info.
Execute: Place Order
invalid amount: not divisible by increment
The order amount must be an increment of size_increment; use All products query to see current size increment of a product in book_info.
Execute: Place Order
invalid amount: zero
The order amount provided is zero.
Execute: Place Order
invalid expiration: already expired
The order has already expired.
Execute: Place Order
invalid amount: too small
The order amount must be >= min_size; use All products query to see current min size of a product in book_info. (Note: this requirement only applies if the order will end up on the book)
Execute: Place Order
max orders limit reached
You have exhausted the max number of open orders for a subaccount on a given market.
Execute: Place Order
unhealthy order
Placing this order fails health checks.
Execute: Place Order
Order price must be within a range of 20% to 500% of oracle price
Order price is too far from current oracle price.
Execute: Place Order
spot_leverage is false, but placing this order can cause borrows
When providing spot_leverage=false, placing the order fails if it leads to a borrow.
Execute: Place Order
order is post only, but it crosses book
The order you're trying to place as post-only would immediately execute against an existing order on the book.
Execute: Place Order
order type not supported!
The order type encoded in the expiration field is not supported.
Execute: Place Order
fill or kill order cannot be fully filled
You placed an FOK order that cannot be fully filled.
Execute: Place Order
invalid taker order
The order placement health checks were successfully passed; however, the health checks failed upon matching.
Execute: Place Order
execute received after recv_time
A recv_time is an encoded time in the order's nonce which tells our engine to ignore this order after this time. This error indicates that the encoded recv_time provided is in the past. See Place Order for more info.
execute received more than 100 seconds before recv_time
This error indicates that the encoded recv_time in the order is more than 100 seconds in the future. recv_time should be <= 100 seconds. See Place Order for more info.
digest already exists
  • When placing an order, the order digest provided already exists on the orderbook.
  • When cancelling product orders, a request with the same digest has already been provided.
trying to cancel order for another subaccount
You are trying to cancel an order associated with a different subaccount than the one provided in the request i.e: subaccount and order.sender do not match.
Execute: Cancel Orders
order with digest {order_digest} not found
The order you are trying to cancel is no longer on the orderbook.
Execute: Cancel Orders
digests and productIds must be the same length
Trying to cancel orders with an invalid input. digests and producIds must be of the same length.
Execute: Cancel Orders
market not found for given product id
The product id provided does not have a market. e.g: product_id=0
spot_leverage is false, but executing this withdraw can cause borrows
When providing spot_leverage=false , the withdraw fails if it leads to a borrow.
Invalid product id
The product id provided does not exist.
product_id must be spot
Attempting to perform a spot-only action but the product id provided is not a spot.
spot_leverage is false, but executing this mint can cause borrows
When providing spot_leverage=false, the LP mint fails if it leads to a borrow.
Execute: Mint LP
Order not found
Order for digest provided is not found on the orderbook.
Query: Order
Invalid nonce
The nonce provided has already been used.
Linking signer to the same address again is not allowed
the signer provided is the currently linked signer.
Execute: Link Signer
Must have account value more than 5 USDC to enable single signature sessions.
the subaccount you are attempting to link a signer to does not meet the min balance requirement. See link signer for more details.
Execute: Link Signer
Address risk is too high
The address provided fails Chainalysis risk checks.
All executes
Address screening risk check pending for this address
Our system is currently reviewing this address via Chainalysis for potential risks. Should try again later.
All executes
Address has never deposited into Vertex
Sender address provided has not deposited collateral into Vertex.
All executes

Indexer API

Error Value
Description
Endpoints
cannot specify digests with subaccount or product_ids
You can only specify either digests or subaccount + product_ids but not both.
Indexer: Orders
cannot specify more digests than limit
The number of digests provided must be <= limit
Indexer: Orders
must specify subaccount
Missing required subaccount field
Indexer: Orders

General

Error Value
Description
Endpoints
IP is from blocked location: {locale}
Attempting to perform an action from a blocked location.
General
No locale found for ip: {IP}
Our system was unable to determine the locale associated to the client IP address.
General
Too Many Requests!
Request is being rate-limited.
General