Skip to main content
Use this page to map Aggregator error symptoms to causes, fixes, and verification data.

Error Body

{
  "error": "<message>"
}
Match the error string by substring. The API does not return a nested code field.

Troubleshooting

Cause: from or to is not in the router token registry.Fix: Check the token identifier format and call /api/v1/pair-config. Stop if supported=false.Verify: Pair config returns supported: true, decimalsIn, decimalsOut, and minAmountIn.Escalation data: Full request URL, token identifiers, and pair-config response.
Cause: Both tokens are known, but the current pool graph has no route.Fix: Show the pair as unavailable. Requote only after token or liquidity state changes.Verify: /api/v1/pair-config returns supported=false with the route error.Escalation data: from, to, timestamp, and pair-config response.
Cause: Amount is missing, negative, fractional, zero, non-numeric, or sent in human-readable units.Fix: Send exactly one of amountIn or amountOut as an integer string in the token’s smallest unit.Verify: The amount is greater than or equal to minAmountIn from pair config.Escalation data: Query string, token decimals, and UI amount before conversion.
Cause: The request has both amountIn and amountOut, or neither.Fix: Use amountIn for forward quotes or amountOut for reverse quotes.Verify: The final query string contains exactly one amount field.Escalation data: Full request URL.
Cause: Route simulation, nonce fetch, gas estimation, or transaction construction failed.Fix: Retry without sender for display pricing. For signing flows, lower maxSplits or maxHops, then requote with sender.Verify: Quote without sender returns amountOut; quote with lower route caps returns transaction or txData.Escalation data: Request URL, sender, route caps, and response body.
Cause: The client exceeded 100 requests per second from one IP.Fix: Add a client-side queue and exponential backoff. Keep includePaths=false for price polling.Verify: Request rate drops below 100 req/s per IP and 429 responses stop.Escalation data: Request rate, IP range, timestamps, and response headers.
Cause: The service is warming up or the pool snapshot is unavailable.Fix: Retry with backoff. Do not sign stale transaction data from a previous quote.Verify: /health returns healthy and a new quote succeeds.Escalation data: /health response, timestamp, request URL, and response body.