You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(marketplace): close RI Marketplace poller gaps (pending rows with a listing id, superseded listings, deployment coverage) #1494
A sale on a listing that has already been replaced is lost. If a listing sells partially and CUDly then records it as ended under a newer listing id before a poll sees the sale, the earlier listing's proceeds are never recorded. This is the same class as the "known window" documented in feat(marketplace): poll RI Marketplace listings and record proceeds and AWS fee (backend slice of #27) #1289, where a listing is cancelled before its first poll.
The poll doesn't run on every deployment. It runs inside the hourly finalize_revocations task, so it doesn't run on Fargate or CloudFormation deployments where that task isn't scheduled, and switching that task off also stops the poll.
Before exposing proceeds in the API or UI
Check one real closed listing to confirm that AWS keeps a price tier marked active after a listing ends. If it doesn't, every real sale stays unpriced and is re-polled every hour.
Status update (2026-10-27, checked against main at 7b86e38): Waiting on an owner decision.
#1508 fixed gap 1: pending rows that hold a listing id are now polled and settled. It documented gap 3 in docs/DEPLOYMENT.md, listing where finalize_revocations, and so the poll, does not run (Fargate, Cloud Run, GKE, Container Apps), which meets the acceptance criterion. Gap 2 (superseded listings) and the checks before exposing proceeds are still open.
Left / blocked on: D24, gap 2: keep a superseded listing's sale with a per-listing settlement table (a marketplace_listing_settlements migration keyed by listing_id), or redefine the columns as a cumulative per-RI total? Recommendation: the per-listing table. D23: proceeds are estimates (units sold x listing price, minus 12%), not AWS disbursements. Recommendation: expose them labelled as estimates. Also needs a check against one real closed AWS listing (does the price tier stay active after the listing ends?), which we can't run without a live seller account. Scheduling on Fargate, GCP and Container Apps is tracked in #712.
Activity
IAmJSD commentedon Oct 26, 2026
Claiming: working on this
fix(marketplace): poll listings recorded as pending and document wher…
IAmJSD commentedon Oct 27, 2026
Status update (2026-10-27, checked against main at 7b86e38): Waiting on an owner decision.
#1508 fixed gap 1: pending rows that hold a listing id are now polled and settled. It documented gap 3 in docs/DEPLOYMENT.md, listing where finalize_revocations, and so the poll, does not run (Fargate, Cloud Run, GKE, Container Apps), which meets the acceptance criterion. Gap 2 (superseded listings) and the checks before exposing proceeds are still open.
Left / blocked on: D24, gap 2: keep a superseded listing's sale with a per-listing settlement table (a marketplace_listing_settlements migration keyed by listing_id), or redefine the columns as a cumulative per-RI total? Recommendation: the per-listing table. D23: proceeds are estimates (units sold x listing price, minus 12%), not AWS disbursements. Recommendation: expose them labelled as estimates. Also needs a check against one real closed AWS listing (does the price tier stay active after the listing ends?), which we can't run without a live seller account. Scheduling on Fargate, GCP and Container Apps is tracked in #712.