One shared page for everything Sessions has raised with Dutchie: every ticket, every outage, every platform limitation we work around, with the evidence and the exact ask. Nothing caused by Sessions' own systems is counted here; those items are excluded on purpose so this page stays clean.
extensions.code = PRODUCT_UNAVAILABLE / INSUFFICIENT_QUANTITY). POS-to-menu sync lag and real-time inventory locking are a separate, still-open initiative. Dutchie is compiling the per-location threshold list and has passed the "net purchasable quantity in the menu API" request to its API product team.Customer-visible impact measured on sessions.ca from our order-error ledger and Google Analytics. "Dutchie-side" means the rejection came from the Dutchie API for an item Dutchie's own menu showed as in stock at the same moment. Purchase-limit blocks (legal 30 g cap) and anything caused by Sessions are excluded.
Straight from our server ledger (every Dutchie response we log, including retries, so these are higher than the customer-visible numbers above). Ledger starts July 17, 2026; September is split at the Sep 13 structured-error-code release.
| Month | "Validation errors" on in-stock item | "Not Found" on item the menu served | Menu vs checkout price mismatch | Checkout create failed (API down) |
|---|---|---|---|---|
| July (from Jul 17) | 103 rejections, 16 stores | 181 rejections, 29 stores | 273 events / 115 carts, 30 stores | 0 Dutchie-side (the 70 on Jul 28 were ours) |
| August | 178 rejections, 34 stores | 71 rejections, 26 stores | 54 events / 44 carts, 23 stores | 0 |
| September 1-12 | 73 rejections, 17 stores | 33 rejections, 12 stores | 27 events / 23 carts, 16 stores | 40 (Sep 10, 8 stores) + 4 add-to-cart 503s |
| September 13-28 (after the error-code release) | 20 rejections / 9 carts, 6 stores | 14 rejections / 13 carts, 8 stores | 58 events / 41 carts, 20 stores | 0 |
"Validation errors" carries the Dutchie error detail "Total exceeds available quantity" (verified Sep 13, 2026): the item is on the menu with stock, but at the moment of checkout Dutchie's available count for it is below what the customer asked for - sold in store since the menu snapshot, held by another open online order, or under the store's online threshold. Dutchie described the single-unit case on Aug 18 and attributed it to the threshold setting on Sep 28; our Sep 28 live test (16 of 16 last-unit adds accepted at five stores) shows the threshold is 0 at the stores that rejected, so the remaining cause is the menu lagging the POS. "Not Found" carries the detail "Variant not found" or "Product not found": the product or option the menu served minutes earlier no longer resolves at checkout. Price mismatch means the checkout line price differed from the menu price for the same product at the same moment; retrying does not clear it and it persists for minutes up to about an hour.
extensions.code on addItem rejections (INSUFFICIENT_QUANTITY, PRODUCT_UNAVAILABLE), verified live Sep 28. Still open: the POS-to-menu sync lag behind the rejections themselves (Dutchie: "separate, dedicated engineering initiative, actively open"). Ask: a date, and the per-location threshold list Dutchie is compiling.Every item here was either confirmed by Dutchie, reproduced against the Dutchie API with Sessions' side held constant, or answered by Dutchie as a platform limitation. Ticket numbers are Dutchie support request IDs.
| Date | Ref | What happened | Status / ask |
|---|---|---|---|
| Sep 28 | 686841 / 687019 | Dutchie's position: API latency is healthy; last-unit add-to-cart rejections come from the per-menu minimum inventory threshold (1 reserves the last unit); thresholds vary by store; engineering shipped structured error codes; sync lag is a separate open initiative. Recommends standardising thresholds and is compiling the per-location list. | Open Ask: threshold list, per-SKU threshold or net quantity in the menu API, a date for the sync work. |
| Sep 28 | 701112 | Dutchie's reply on the 701112 thread restated the minimum-threshold behaviour from 685427 / 686841 and did not address the missing products. Sessions re-measured the six locations against a fresh Cova snapshot the same day. | Open Ask: an answer on the missing products specifically, not the threshold. |
| Sep 25 | 701112 | Sessions opened request 701112: at six locations a large share of in-stock Cova products never appear on the Dutchie menu (Plus API and consumer menu). Spreadsheet with every missing product, Cova SKU and ProductId attached. | Open Ask: Cova integration check for the six retailers; re-sync or import; ETA. |
| Sep 22-24 | 686841 family | North York (Back Forty Galactic Jack, Sep 22) and Cambridge (Back Forty Chemzilla, Sep 24): qty-1 add-to-cart rejected with "Validation errors" / "Total exceeds available quantity" after our server had just read the item as in stock on Dutchie's menu; the paced retry 1.2 s later failed identically. | Open Rolled into 687019. |
| Sep 10 | outage | Plus API returned HTTP 503 to checkout create and add-to-cart calls for 36 minutes (19:58-20:34 UTC). | Open Ask: incident summary and a status channel. |
| Sep 10 | 686841 family | Timmins (Park Road): one SKU rejected at checkout 8 times across 7 different customer sessions on the same day while the menu showed it in stock. | Open Rolled into 687019. |
| Sep 1 | 687019 | Dutchie update on the escalation of 686841: "this issue is in the works, our engineering team is actively building a fix." | Pending Dutchie Ask: scope, cases covered, ETA. |
| Sep 1 | internal #11391 | Store report: items with on-hand quantity above the ecommerce threshold missing from the online menu (four SKUs at one store: 8, 16, 12 and 6 units on hand). | Logged Will raise with examples if it repeats. |
| Aug 24 | CSM call | 30-minute review with our Dutchie CSM covering 686841, 685427 and the API gaps below. | Pending Dutchie |
| Aug 18-19 | 686841 | Dutchie (Max, Product Support) confirmed a known limitation: "Dutchie Plus will block a checkout when a product has only 1 unit left in stock." Asked for more examples per case; Sessions replied the same night with counts and timestamps. | Pending Dutchie No reply on root cause for Not Found or price mismatch since Aug 18. |
| Aug 14 | 685427 | Dutchie's networking team confirmed the allowlisting of our egress IP 77.42.66.58; Sessions confirmed it working on Aug 19. | Resolved Ask: allow IPv6 or document that it is unsupported. |
| Aug 14 | 687078 | "No inventory available" shown in COVA at the register when ringing up an online order (Etobicoke Albion; same family seen chain-wide). | Open Ask: link to 686841 / 687019. |
| Aug 14 | 686982, 686984, 686985 | Three further requests opened by Sessions the same morning; confirmations received. | Pending Dutchie |
| Aug 13 | 686841 | Opened: recurring add-to-cart failures ("Validation errors" and "Not Found") on in-stock items, plus checkout prices disagreeing with menu prices. | Open Escalated as 687019. |
| Aug 10 | 685480 | Post-checkout return URL updated to sessions.ca/order-completed for all locations. | Closed |
| Aug 10 | 685427 | Connectivity: authenticated API calls from our server intermittently refused (403). Dutchie escalated to its networking engineering team. | Resolved Aug 19 |
| Jul 18-20 | 678128 | One store's menu briefly showed wrong or missing products. | Resolved Cause never identified. |
| Jul 16-17 | internal #11052, #11062 | Timmins: delivery orders showed a "please pick up" message with delivery enabled (store back-end configuration). River Bend: phone orders not appearing store-side. | Closed |
| Jul 8 | 674639 | Can an order placed through the website be cancelled or modified after submission? | Limitation Ask: roadmap for cancel/modify. |
| Jun 4 - Aug 14 | 663272 | Request to allowlist Sessions' server so it can reach the Dutchie API directly. | Resolved Ask: confirm when a request is completed. |
Not tickets, but behaviours of the Dutchie Plus and consumer menu APIs that shape what customers see. Each one costs us engineering time or sales; each would be a welcome roadmap item.
| Area | Behaviour | Effect on Sessions | Ask |
|---|---|---|---|
| Availability at checkout | The menu shows an item with stock; addItem rejects it with "Total exceeds available quantity" because Dutchie's checkout-side count has moved (in-store sale, hold from another open order, online threshold). Single-unit case confirmed Aug 18; on Sep 28 Dutchie attributed it to the threshold setting, and the same-day live test showed the rejecting stores have the threshold at 0. | Customer sees an in-stock item, then a checkout error. 73 rejections at 17 stores in the first 12 days of September; 31 of 45 affected carts still completed without the item. | Expose the checkout-side count in the menu API or a change feed so we can stop the customer before the wall. |
| Hosted checkout TLS | connect.dutchiemenus.com, which every store checkout hostname under sessions.ca points at, still accepts TLS 1.0 and 1.1 (verified Sep 13, 2026). | 49 security findings raised against our domain in one scan; weaker transport for customers on the checkout page than on the rest of sessions.ca, which is TLS 1.2 minimum. | Enforce TLS 1.2 minimum on connect.dutchiemenus.com. |
| Menu vs checkout | Menu keeps serving delisted products; checkout price can differ from menu price for the same product at the same moment. | "Not Found" at checkout; price disagreements that retry does not clear. | Single source of truth or a change feed we can subscribe to. |
| Search | Text search on the consumer menu returns at most 20 hits. | We index the full menu ourselves to give customers complete search. | Paginated search. |
| Variant options | Variant option carries total weight, not pack format (a 3 x 0.5 g pre-roll and a 1.5 g pre-roll look identical). | We derive pack format from names to build pre-roll and edible filters. | Expose pack count and unit size. |
| Price summary | priceSummary.subtotal is pre-discount. | Extra reconciliation logic so the cart total we show matches what the customer pays. | Post-discount subtotal field. |
| Checkout URL | Some stores' checkout redirect URLs are issued as http:// (Timmins). | We upgrade to https:// ourselves. | Issue https:// everywhere. |
| Provisioning | Some locations are not provisioned for Plus checkout (Fiddlesticks, Cambridge as of Aug 2026). | Customers are sent to the store's Dutchie menu instead of a native checkout. | Provision all locations. |
| Brand data | Brand profile on some products is a different company (example: Nugz shown as Amaze NUGZ). | We override brand text by hand. | Fix at source. |
| IPv6 | Requests over IPv6 receive 403 even from allowlisted networks. | We pin IPv4. | Support IPv6 or document it. |
| Orders | No cancel/modify after submission; no order-status API; no Plus API status page or incident channel. | Stores handle cancellations by phone; we cannot show order progress; outages are discovered by our own monitoring. | Order status API, cancel/modify, status page. |
| Online payment | Online payment option reviewed Aug 2026: delivery-only, and no second-factor step in the flow. | Not enabled for Sessions customers. | Pickup support and a stronger auth step. |