Gett Developer Portal
  • Welcome
  • Distribution Partners
  • Brand Partners
  • Commerce Partners
  • Ecosystem Partners
  • Errors
  • API Reference
Documentation
  • Get Started
  • Marketfront SDK
  • API Reference
Resources
  • Payments
Company
  • Gett
  • Terms of Service
  • Privacy Policy

Copyright 2026 Gett. All rights reserved.

409 Conflict403 Forbidden500 Internal Server Error400 Bad Request404 Not Found429 Too Many Requests503 Service Unavailable401 Unauthorized502 Bad Gateway422 Unprocessable EntityCATALOGSET_NOT_FOUNDCATALOGSET_REQUIREDCLIENT_CONTEXT_REQUIREDCLIENT_IP_INVALIDCLIENT_USER_AGENT_INVALIDITEM_UNAVAILABLEMODIFIER_REQUIREDORDER_TOTAL_DIFFERENTPRECISION_EXCEEDEDCARD_EXPIREDCARD_LOST_OR_STOLENINCORRECT_CVCINSUFFICIENT_FUNDSPAYMENT_DECLINEDPAYMENT_FAILEDPAYMENT_TOKEN_INVALIDPROCESSING_ERRORSESSION_USER_REQUIREDSTORE_CLOSEDSTORE_NOT_FOUND
powered by Zuplo
Errors

ITEM_UNAVAILABLE

ITEM_UNAVAILABLE

A line item, modifier group, or modifier referenced by the order is no longer present in the live catalog. Catalogs change — items get 86'd, modifier groups are reorganized — and the user's cart can drift out of sync.

Summary

FieldValue
Appears aserrors[].code
ResponseHTTP 200 — Order with isValid: false and a populated errors[]
Retry unchangedNo

This is a reason code, not a top-level error code

ITEM_UNAVAILABLE is an errors[].code value on the order. It is not a top-level ProblemDetail.errorCode, so it carries no HTTP status, errorCategory, or retryable field of its own. See Unified OrderError shape.

When This Fires

  • POST /v1/marketfront/orders/validate — at least one lineItem.itemId, modifierGroup.modifierGroupId, or modifier.modifierId does not exist in the catalog set the order was validated against.
  • POST /v1/marketfront/orders/place — same condition surfaces at placement time (typically only if validation was skipped).

When the cart is checked against the catalog, errors[] contains one entry per offending line item with a pointer locating the exact element. When the reason comes back from the commerce partner instead, pointer is null — the partner tells us the order failed, not which element caused it.

message names the item when we can resolve its name from the catalog you validated against, and falls back to a generic sentence when we cannot. It never carries an identifier — use pointer to locate the element programmatically, and message only for display.

Recommended Action

Re-fetch the catalog and reconcile the cart with the user:

  1. GET /v1/marketfront/stores/{storeId} — read the store's current catalogSetId, then GET /v1/marketfront/catalog-sets/{catalogSetId} to pull it. Catalog sets are immutable, so re-fetching the id you already hold returns the same stale menu — you must re-read the store to pick up the new one.
  2. Walk the errors[] array and surface each unavailable item to the user with a "remove" or "substitute" affordance.
  3. Have the user resolve each, then resubmit.

A blind retry will continue to fail.

Example

Code
{ "isValid": false, "errors": [ { "code": "ITEM_UNAVAILABLE", "message": "'Pepperoni' is no longer available on 'Build Your Own Pizza'. Please edit that item and try again.", "pointer": "/cart/lineItems/0" } ] }
CLIENT_USER_AGENT_INVALIDMODIFIER_REQUIRED
On this page
  • Summary
  • When This Fires
  • Recommended Action
  • Example
JSON