Skip to main content

Error codes

All error responses share one shape. Branch on code, not only the HTTP status.

{ "error": { "code": "invalid_request", "message": "..." } }
The short version
  • 503 service_unavailable … Temporary. A Retry-After header is sent — follow it
  • 503 capability_not_enabled … Not enabled in this environment; retrying will not help (no Retry-After)
  • 429 … Retry per Retry-After
  • 422 / 400 … The request is wrong; retrying as-is will not help
  • 401 / 403 … Token or scope problem
  • 404 … Not found. Also returned when you lack access (we do not reveal existence)

This page is generated from the API implementation (98 codes), so it cannot drift from the code.

Common​

CodeHTTPWhat to do
capability_not_enabled503Not enabled in this environment — retrying will not help. No Retry-After is sent; ask us about availability
internal_error500Our problem. Contact us if it reproduces
payload_too_large413Reduce the request body (limit: 1 MiB)
service_unavailable503Retry after a delay (a Retry-After header is sent)

Authentication​

CodeHTTPWhat to do
invalid_client400 / 401Fix the request. Retrying as-is will not help
invalid_grant400Fix the request. Retrying as-is will not help
invalid_request400 / 422Fix the request. Retrying as-is will not help
invalid_scope400Fix the request. Retrying as-is will not help
not_found404Not found (also returned when you lack access)
unsupported_grant_type400Fix the request. Retrying as-is will not help
unsupported_response_type400Fix the request. Retrying as-is will not help
unsupported_token_type400Fix the request. Retrying as-is will not help

Idempotency & rate limiting​

CodeHTTPWhat to do
idempotency_key_conflict422Fix the request. Retrying as-is will not help
idempotency_key_required400Fix the request. Retrying as-is will not help
idempotency_request_in_progress409Conflict. Re-fetch the current state
insufficient_scope403Insufficient permission. Check the required scope
invalid_token401Obtain a new token
rate_limited429Retry per Retry-After.
token_revoked401Obtain a new token
unauthorized401Obtain a new token

Catalog, categories, inventory​

CodeHTTPWhat to do
annotation_write_failed500Our problem. Contact us if it reproduces
axis_without_values422Fix the request. Retrying as-is will not help
bundle_not_allowed400 / 422Fix the request. Retrying as-is will not help
bundle_required422Fix the request. Retrying as-is will not help
cancel_by_after_event_start422Fix the request. Retrying as-is will not help
cancel_by_before_sell_from422Fix the request. Retrying as-is will not help
cancel_by_required422Fix the request. Retrying as-is will not help
category_depth_exceeded422Fix the request. Retrying as-is will not help
category_not_found422Fix the request. Retrying as-is will not help
component_has_variants422Fix the request. Retrying as-is will not help
component_not_found422Fix the request. Retrying as-is will not help
conflict_manual_override409Conflict. Re-fetch the current state
duplicate_axis422Fix the request. Retrying as-is will not help
duplicate_axis_value422Fix the request. Retrying as-is will not help
duplicate_image_id422Fix the request. Retrying as-is will not help
duplicate_variant_combination409 / 422Conflict. Re-fetch the current state
duplicate_variant_sku409 / 422Conflict. Re-fetch the current state
external_ref_conflict409Conflict. Re-fetch the current state
free_ticket_price_must_be_zero422Fix the request. Retrying as-is will not help
gift_must_not_ship422Fix the request. Retrying as-is will not help
hierarchy_move_not_allowed400Fix the request. Retrying as-is will not help
image_fetch_failed422Fix the request. Retrying as-is will not help
image_invalid422Fix the request. Retrying as-is will not help
image_not_found422Fix the request. Retrying as-is will not help
image_too_large422Fix the request. Retrying as-is will not help
image_url_not_allowed422Fix the request. Retrying as-is will not help
immutable_field409Conflict. Re-fetch the current state
immutable_variation_axes400 / 409Conflict. Re-fetch the current state
incomplete_image_order422Fix the request. Retrying as-is will not help
invalid_parameter400Fix the request. Retrying as-is will not help
invalid_sell_period422Fix the request. Retrying as-is will not help
invalid_ticket_valid_period422Fix the request. Retrying as-is will not help
inventory_busy409Nothing was written. The stock row was in use (e.g. a checkout in progress). Resend after Retry-After with the same Idempotency-Key, or try in the next cycle
inventory_not_updatable_here400Fix the request. Retrying as-is will not help
inventory_out_of_range422Fix the request. Retrying as-is will not help
lottery_date_before_sell_by422Fix the request. Retrying as-is will not help
lottery_not_allowed422Fix the request. Retrying as-is will not help
lottery_required422Fix the request. Retrying as-is will not help
managed_by_other409Conflict. Re-fetch the current state
negative_inventory422Fix the request. Retrying as-is will not help
no_image_cannot_activate422Fix the request. Retrying as-is will not help
no_variation_axes422Fix the request. Retrying as-is will not help
number_of_sets_out_of_range422Fix the request. Retrying as-is will not help
number_of_sets_required422Fix the request. Retrying as-is will not help
parent_category_not_found422Fix the request. Retrying as-is will not help
plan_limit_exceeded422Fix the request. Retrying as-is will not help
price_below_minimum422Fix the request. Retrying as-is will not help
readback_failed500The write already succeeded — do not retry. Fetch the current state with GET
set_inventory_must_be_null422Fix the request. Retrying as-is will not help
set_inventory_not_updatable422Fix the request. Retrying as-is will not help
set_nesting_forbidden422Fix the request. Retrying as-is will not help
sku_conflict409Conflict. Re-fetch the current state
status_locked422Fix the request. Retrying as-is will not help
ticket_info_required422Fix the request. Retrying as-is will not help
ticket_not_allowed400 / 422Fix the request. Retrying as-is will not help
too_many_axes422Fix the request. Retrying as-is will not help
too_many_axis_values422Fix the request. Retrying as-is will not help
too_many_variants422Fix the request. Retrying as-is will not help
total_inventory_changed409Nothing was written. The total changed after you read it. Read the item and orders again, recalculate, and send with a new Idempotency-Key
unlimited_inventory422Fix the request. Retrying as-is will not help
unsupported_kind422Fix the request. Retrying as-is will not help
variant_axis_mismatch422Fix the request. Retrying as-is will not help
variant_axis_missing422Fix the request. Retrying as-is will not help
variant_axis_value_unknown422Fix the request. Retrying as-is will not help
variant_id_required422Fix the request. Retrying as-is will not help
variant_item_inventory_must_be_null422Fix the request. Retrying as-is will not help
variant_not_found422Fix the request. Retrying as-is will not help
variation_incomplete422Fix the request. Retrying as-is will not help
variation_not_allowed422Fix the request. Retrying as-is will not help

Reservations, shipping, inflow routes​

CodeHTTPWhat to do
feature_not_enabled403Insufficient permission. Check the required scope
invalid_period422Fix the request. Retrying as-is will not help
invalid_reservation_state409Conflict. Re-fetch the current state
invalid_transition409Conflict. Re-fetch the current state
sold_out409Conflict. Re-fetch the current state
variant_reservation_not_supported422Fix the request. Retrying as-is will not help