Skip to content
Indiana
Dashboard
Docs
Browse docs / Requests & errors

Requests & errors

Authentication, timeouts, idempotency and troubleshooting.

SDK 0.0.1Updated

Request conventions

  • Send one Authorization: Bearer credential. It defines App, environment, audience and permissions.
  • Optional scope headers must appear together and match the credential. POST bodies use application/json. Default body limit: 16 KiB; customer write bodies, including attributes, are limited to 32 KiB.
  • Standard customer and commerce API responses carry requestId and scope. Errors use { requestId, error: { code, message } }; X-Request-Id aids troubleshooting. Responses are no-store.
  • The SDK does not follow redirects or retry automatically. It uses a 10-second timeout including response-body reading. Reuse stable requestId, eventId or idempotencyKey for a write retry.
HTTP errors
HTTPCodeMeaning
400INVALID_REQUESTThe request body or parameters do not match the contract.
401UNAUTHENTICATEDThe credential is missing, invalid, expired or revoked.
403FORBIDDENThe credential lacks permission or the browser origin is not allowed.
403SCOPE_MISMATCHThe scope headers do not match the credential’s App and environment.
404NOT_FOUNDThe object does not exist in the current App and environment.
409CONFLICTThe request conflicts with existing data, for example different content under the same eventId.
413PAYLOAD_TOO_LARGEThe request exceeds the endpoint’s body-size limit.
429RATE_LIMITEDThe request rate exceeds the limit; retry later.
500INTERNAL_ERRORAn internal failure or invalid response occurred. Internal exception details are not exposed.
501NOT_CONFIGUREDThe capability is not configured or has not been implemented.
503SERVICE_UNAVAILABLEThe service is temporarily unavailable; retry later.

HTTP errors

  • INVALID_REQUEST400

    Meaning
    The request body or parameters do not match the contract.
  • UNAUTHENTICATED401

    Meaning
    The credential is missing, invalid, expired or revoked.
  • FORBIDDEN403

    Meaning
    The credential lacks permission or the browser origin is not allowed.
  • SCOPE_MISMATCH403

    Meaning
    The scope headers do not match the credential’s App and environment.
  • NOT_FOUND404

    Meaning
    The object does not exist in the current App and environment.
  • CONFLICT409

    Meaning
    The request conflicts with existing data, for example different content under the same eventId.
  • PAYLOAD_TOO_LARGE413

    Meaning
    The request exceeds the endpoint’s body-size limit.
  • RATE_LIMITED429

    Meaning
    The request rate exceeds the limit; retry later.
  • INTERNAL_ERROR500

    Meaning
    An internal failure or invalid response occurred. Internal exception details are not exposed.
  • NOT_CONFIGURED501

    Meaning
    The capability is not configured or has not been implemented.
  • SERVICE_UNAVAILABLE503

    Meaning
    The service is temporarily unavailable; retry later.
Client errors
CodeMeaning
NOT_IDENTIFIEDCall identify with a customer token before requesting customer data.
INVALID_TOKENThe token is empty or a server key was supplied to the browser client.
SERVER_ONLYThe server client was constructed in a browser.
TIMEOUTThe request timed out (10 seconds by default; configurable from 1–120,000 ms).
NETWORK_ERRORThe network request failed. The SDK does not retry automatically.
IDENTITY_CHANGEDThe identity changed or reset was called during the request; the old response was discarded.
SCOPE_MISMATCHThe response’s App or environment does not match the configured scope.
INVALID_REQUESTLocal validation rejected the method parameters.
INVALID_RESPONSEThe server response does not match the contract.
HTTP_ERRORThe server returned an error response that could not be parsed.
INVALID_URLbaseUrl must use HTTPS (localhost HTTP is allowed) and contain no credentials or query parameters.
INVALID_TIMEOUTtimeoutMs must be between 1 and 120,000 milliseconds.

Client errors

  • NOT_IDENTIFIED

    Meaning
    Call identify with a customer token before requesting customer data.
  • INVALID_TOKEN

    Meaning
    The token is empty or a server key was supplied to the browser client.
  • SERVER_ONLY

    Meaning
    The server client was constructed in a browser.
  • TIMEOUT

    Meaning
    The request timed out (10 seconds by default; configurable from 1–120,000 ms).
  • NETWORK_ERROR

    Meaning
    The network request failed. The SDK does not retry automatically.
  • IDENTITY_CHANGED

    Meaning
    The identity changed or reset was called during the request; the old response was discarded.
  • SCOPE_MISMATCH

    Meaning
    The response’s App or environment does not match the configured scope.
  • INVALID_REQUEST

    Meaning
    Local validation rejected the method parameters.
  • INVALID_RESPONSE

    Meaning
    The server response does not match the contract.
  • HTTP_ERROR

    Meaning
    The server returned an error response that could not be parsed.
  • INVALID_URL

    Meaning
    baseUrl must use HTTPS (localhost HTTP is allowed) and contain no credentials or query parameters.
  • INVALID_TIMEOUT

    Meaning
    timeoutMs must be between 1 and 120,000 milliseconds.
Catch GrooveError and record code, status and requestId. Never record the server key or customer token. Refresh expired customer sessions through your own authenticated backend before retrying.