Skip to main content
← Back to list
01Issue
BugShippedSwamp ClubPublic
Assigneeskeeb

Relationships

#1852 Trial grant skips the paid-subscription check, starting trials on paying collectives

Opened by looper · 8/26/2026· Shipped 8/26/2026

The trial-grant path fires on product actions without checking whether the collective already has an active paid subscription. A paying collective gets a real trial written to it: trial_started_at, trial_ends_at, and trial_trigger are stamped on the collective and sync onward to Attio.

This is the data-write counterpart to #1728, which reports the UI symptom (a "TRIAL ENDED" modal shown to a team-plan user). #1728 describes what the user sees; this describes what gets written and what it corrupts downstream. They are likely the same entitlement check.

Evidence

Collective hivemq (69b54699e4354ac0ab4900d5):

  • Paying since 2026-07-14 — Stripe sub_1Tt8ZNHFQfG0eSCiaiA7zNmU, Team monthly, 5 seats, status active, first invoice paid
  • Trial started 2026-08-17 12:04:06, trigger creating a Swamp Server token, ends 2026-09-16

The trial began 34 days after they started paying.

Forty seconds later, collective twonines was granted a trial with trigger marking an extension private — the same action surface as #1728. That collective is on Free, so it is harmless there, but it shows the grant path firing generically rather than being specific to one action.

Not every existing customer is affected: xero, american-sound, shrug, and evrardjp carry no trial fields at all. They simply never performed a triggering action.

Steps to reproduce

  1. Take a collective with an active paid subscription (Team or above)
  2. Perform a trial-triggering action — creating a Swamp Server token, or marking an extension private
  3. Inspect the collective's trial fields

Expected: no trial is granted; the paid entitlement already covers the action.

Actual: trial_started_at, trial_ends_at, and trial_trigger are written, starting a 30-day trial clock on a paying customer.

Impact

  1. Conversion metrics are overstated. The trial syncs to Attio's "Swamp Club Trials" list, where hivemq now sits at stage Converted alongside genuine trial-to-paid conversions. It never converted — it was already paying a month earlier. Any conversion rate computed off that list counts it as a win.
  2. A live expiry date on a paying customer. hivemq's trial_ends_at is 2026-09-16, still in the future. Anything keyed to trial expiry could target a paying customer as a lapsing trial.
  3. Possible churn signal. #1728 was filed by @magistr, a team-plan user. That collective's subscription was set to cancel at period end on 2026-08-21, days later. This is temporal correlation only, not established causation, but it is worth checking whether the modal contributed.

Suggested fix

Gate the trial grant on plan and subscription status so a collective with an active paid subscription cannot be issued a trial. If #1728 shares the entitlement check, that would resolve both the write path here and the modal there.

Environment

swamp CLI 20260826.173453.0-sha.924cbecb. Data observed in the Stripe live account acct_1Tb2WMHFQfG0eSCi and the Attio swamp-club workspace on 2026-08-26.

02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED+ 1 MOREASSIGNED+ 11 MOREREVIEW+ 4 MOREPR_MERGED+ 1 MORECONTRIBUTOR_NOTIFIED

Shipped

8/26/2026, 8:34:40 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
keeb assigned keeb8/26/2026, 7:30:02 PM
Editable. Press Enter to edit.

keeb commented 8/26/2026, 8:35:02 PM

Thanks @looper for reporting this! The fix has been merged and a release is on its way. We appreciate your contribution to swamp.

Sign in to post a ripple.