BAD_USER_INPUT). Inspect the errors array to know what happened. Other requests rejected before they run use other statuses, for example 429 when you exceed the request rate, and 400 with GRAPHQL_VALIDATION_FAILED when a query doesn’t match the schema or exceeds the query cost limits. A query that doesn’t parse, or is over the token limit, gets 500 with the same GRAPHQL_VALIDATION_FAILED code. That’s a rejected query, not a server fault, so don’t retry it.
Error shape
AUTH-*— authentication and token issuesBS-*— general business / validation errorsGC-*— gift card operationsVC-*— virtual card operations
Domain error codes
Fluz uses prefixed error codes so you can branch on the failing subsystem.
Codes not in this list surface as generic validation or server errors.
Troubleshooting
- Check scope on
AUTH-*. These almost always mean the token was minted without the required scope; mint a new token. AUTH-0002Re-query before retryingGC-*. Offers and stock change frequently — pull a fresh offer and retry.- Re-query before retrying business errors.
GC-0009(stock) and similar mean the world changed — don’t retry with staleDon’t retry validation errors.VC-*andBS-*codes with4xx-like intent will fail identically on retry until you fix the input or balance. - Retry transient server errors with backoff and jitterRetry 5xx / network errors with jitter. Money-moving mutations are de-duplicated; see Idempotency.