Errors
The public API uses stable HTTP status codes and error codes. SDK callers receive FabHubApiError for non-2xx responses.
Common statuses
400invalid request or validation error401missing, invalid, expired, or revoked credential403missing scope, plan gate, or IP allowlist denial404resource not found409idempotency conflict429rate limit exceeded500server error
Client guidance
Treat 401 and 403 as configuration or permission problems, not retryable failures. Treat 429 as retryable only after the advertised retry window. Use idempotency keys on writes before retrying transport failures.