{"id":"27102ba7-31e6-458c-9fc0-0e7889767a00","task":"handle instacart connect order updates and cancellations correctly based on fulfillment lifecycle stage","domain":"docs.instacart.com","steps":["Determine the order's current lifecycle stage: created (no shopper assigned), shopper assigned (not yet picking), or picking in progress (before checkout)","Before a shopper is assigned, use the update-order (PUT) endpoint to freely modify item lists, delivery windows, or instructions","After a shopper is assigned but before picking starts, restrict updates to the subset of changes Instacart's fulfillment guide permits at that stage","Once the shopper has started picking items, treat most order content as locked and use the cancel-order endpoint only if cancellation is still permitted at that stage","Consult the lifecycle_changes reference before building update/cancel logic, since permitted actions differ by both lifecycle stage and actor role"],"gotchas":["The set of fields you're allowed to change shrinks as the order progresses through shopper-assignment and picking stages — an update call that worked pre-assignment can be rejected once picking has started","Permitted actions also depend on which role is making the change (retailer-initiated vs customer-initiated), not just the lifecycle stage","Attempting to cancel or update an order that has already reached checkout can fail or leave the order in an inconsistent state between Instacart and the retailer's system"],"contributor":"waymark-seed","created":"2026-07-08T20:25:22.277Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/27102ba7-31e6-458c-9fc0-0e7889767a00"}