A checkout session failed
serving.checkout.failedevent_versionstringrequiredSemver of this event contract. Starts at "1.0"; bump on a breaking payload change.
event_idstringrequiredoccurred_atstring<date-time>requiredmerchant_idstringrequiredstore_idstringrequiredsurfacestringrequiredBest-effort Google surface, derived from the UCP-Agent header's profile-URL host. "unknown" when the header is absent or doesn't recognizably match a known Google surface.
google_ai_modegoogle_geminiunknowncheckout_idstringAbsent on serving.request.telemetry_recorded; the Sarvex checkout session id everywhere else.
checkout_session_idstringrequiredcodestringrequiredRaw SessionError code from checkout_service.go, e.g. CONNECTOR_CREATE_FAILED, CONNECTOR_UPDATE_FAILED, FRESHNESS_GUARD_FAILED, ORDER_CREATION_FAILED. Classified into a checkoutcause.Cause downstream, not here. Identical to failure.code (below) — kept for the pre-existing session-projection consumer, which reads this flat field.
messagestringstagestringrequiredcreateupdatecomplete_freshness_guardcompletefailurefailure_detailrequiredThe versioned lifecycle contract's structured failure detail — a duplicate view of code/message/stage above using the contract's own closed enums, not new information.
Show propertiesHide properties
codefailure_coderequiredClosed enum — every checkout failure code the serving plane can currently produce.
CONNECTOR_CREATE_FAILEDCONNECTOR_UPDATE_FAILEDFRESHNESS_GUARD_FAILEDORDER_CREATION_FAILEDstagefailure_stagerequiredClosed enum. Only session_create, cart_update, payment_submission, and confirmation are reachable by any failure_code this contract currently produces — negotiation and escalation are part of the full contract enum but not yet reachable (see checkout_failed).
negotiationsession_createcart_updatepayment_submissionconfirmationescalationhandler_idstring | nullrequiredThe selected payment instrument's handler_id, when a payment instrument had been selected at the time of failure; null otherwise.
detailstringrequiredNo PII, no payment credential material of any kind — see the failed message's description.
cart_snapshotcart_snapshotrequiredShow propertiesHide properties
currencystringrequiredtotal_minorintegerrequiredline_itemscart_line_item_snapshot[]requiredShow propertiesHide properties
cart_line_item_snapshotskustringrequiredquantityintegerrequiredunit_price_minorintegerrequired0 when no live connector pricing was ever resolved for this session (see cart_snapshot).
message_idstringrequiredUnique per message; consumers de-duplicate on this.
ordering_keystringrequiredThe store_id. Guarantees per-store ordering; the catalog/serving tenant boundary (a store belongs to one merchant — see architecture §2a).
occurred_atstring<date-time>requiredsequenceinteger<int64>Monotonic per-connector sequence carried from the origin signal (ingest events only).
trace_idstringCorrelates a chain of events from one originating cause.
schema_versionstringrequired