Skip to main content

Errors

The Canon API uses standard HTTP status codes and returns structured JSON error responses.

Error Response Format

{
"error": "error_code",
"message": "Human-readable description of the error"
}

HTTP Status Codes

CodeMeaningDescription
200OKRequest succeeded
400Bad RequestInvalid request parameters
401UnauthorizedMissing or invalid API key
429Too Many RequestsRate limit exceeded
502Bad GatewayUpstream data source unavailable
504Gateway TimeoutRisk computation timed out

Validation Errors (400)

Returned when request parameters fail validation.

{
"error": "invalid_asset",
"message": "Asset 'FAKECOIN' is not available"
}
Error CodeDescription
invalid_assetAsset not found or not available on Hyperliquid
invalid_walletWallet address is not a valid 42-character hex address
invalid_sizePosition size is not positive
size_too_largePosition size exceeds $100M maximum
leverage_exceededRequested leverage exceeds the asset's maximum
asset_delistedAsset has been delisted and is no longer tradeable
isolated_onlyAsset only supports isolated margin; cross margin was requested
batch_too_largeBatch request exceeds 50 trades
batch_emptyBatch request contains no trades

Upstream Errors (502)

Returned when Canon cannot fetch required data from the exchange.

{
"error": "wallet_state_unavailable",
"message": "Unable to fetch wallet state from Hyperliquid"
}

Timeout Errors (504)

Returned when risk computation exceeds the 10-second timeout.

{
"error": "timeout",
"message": "Risk computation timed out"
}

This is rare and typically indicates extreme exchange-side latency. Retry after a brief delay.