Skip to main content

Bifrost Integration Chat — 2026-07-28 (Tuesday)

Logged from Bhargav's relay in a working session — not a verbatim channel capture. Context: three staging bets on soccer sportsbook market 14.7521162_3 (Match 1X2) declined with async BetSnapshot errorCode: 2036, errorMessage: "Price index must not be null".


Bhargav (to Bifrost team)

The swagger API does not list priceIndex in PlaceBetRequest's required fields, yet runtime validation returns 2036 when it's missing. Can you share updated docs?

Bifrost team (paraphrased)

It's only required for provider 14.*.


Implications recorded

  1. priceIndex is mandatory at runtime for 14.* (sportsbook) markets despite the swagger (docs/bifrost/swagger/betting-api-v1.json) omitting it from PlaceBetRequest.required and BIFROST_BETTING_API.md previously marking it "required: no". Swagger↔runtime drift on Bifrost's side; updated docs requested — follow-up outstanding, not yet received.
  2. Not stated as required for 9.* (fancy) or 1.* (exchange). Hannibal has always sent priceIndex (defaulted to 0) on every Bifrost placement in prod without rejection, so continuing to always send it is safe and prod-proven.
  3. proto3 wire note: Bifrost's market-book serializer omits priceIndex when it equals 0 (top-of-book, the common case), so consumers must decode absence as index 0 — see the 2026-07-28 staging incident (orders 06ee68ee, 9baa6613, a6935987, the first placements through the prepared-placement path introduced in Hannibal PR #1063, which had removed the ?? 0 decode default).