Variable: ErrorCodes
constErrorCodes:object
Type Declaration
ABORTED
readonlyABORTED:"ABORTED"='ABORTED'
The caller cancelled the request via its AbortSignal — distinct from TIMEOUT
(the SDK's own deadline). A cancelled request is never retried.
ACCOUNT_PENDING_APPROVAL
readonlyACCOUNT_PENDING_APPROVAL:"ACCOUNT_PENDING_APPROVAL"='ACCOUNT_PENDING_APPROVAL'
A signup succeeded but established no session because the store approves new
accounts manually. message is the store's translated notice — render it verbatim.
ACCOUNT_PENDING_EMAIL_CONFIRMATION
readonlyACCOUNT_PENDING_EMAIL_CONFIRMATION:"ACCOUNT_PENDING_EMAIL_CONFIRMATION"='ACCOUNT_PENDING_EMAIL_CONFIRMATION'
A signup on an e-mail that already belongs to a customer of the store without an
account (newsletter subscriber, guest buyer): a link went to that address and the
account is created once the buyer opens it and enters the same password. No session
yet. message is the translated notice — render it verbatim.
GRAPHQL_ERROR
readonlyGRAPHQL_ERROR:"GRAPHQL_ERROR"='GRAPHQL_ERROR'
HTTP_ERROR
readonlyHTTP_ERROR:"HTTP_ERROR"='HTTP_ERROR'
NETWORK_ERROR
readonlyNETWORK_ERROR:"NETWORK_ERROR"='NETWORK_ERROR'
NO_DATA
readonlyNO_DATA:"NO_DATA"='NO_DATA'
NON_JSON_RESPONSE
readonlyNON_JSON_RESPONSE:"NON_JSON_RESPONSE"='NON_JSON_RESPONSE'
The response body could not be parsed as JSON — most commonly an HTML page substituted
by a proxy, a WAF challenge, or an edge block (e.g. Cloudflare) in front of the GraphQL
endpoint, rather than an actual GraphQL response. Carries the real HTTP status (this is
NOT a network failure — a response was received). See NonJsonResponseDiagnostics
for the shape carried in cause. retryMiddleware does not retry this error when
status < 500 (a deterministic block/challenge — retrying would hit the same page again);
a status >= 500 non-JSON body (e.g. an nginx/load-balancer HTML error page) is treated
as transient and retried like any other 5xx.
RATE_LIMITED
readonlyRATE_LIMITED:"RATE_LIMITED"='RATE_LIMITED'
The request was rate-limited (HTTP 429). Transient: the same request may succeed after the limit window passes — callers MUST treat it as retryable and MUST NOT tear down the session on it (e.g. a refresh rate-limit is not a logout).
SESSION_EXPIRED
readonlySESSION_EXPIRED:"SESSION_EXPIRED"='SESSION_EXPIRED'
The customer session expired and could not be renewed (proactive refresh failed on tab wake, or a reactive refresh after a 401 also failed). Surfaced to the consumer so the storefront can prompt re-authentication.
TIMEOUT
readonlyTIMEOUT:"TIMEOUT"='TIMEOUT'
USER_ERROR
readonlyUSER_ERROR:"USER_ERROR"='USER_ERROR'