Skip to content
Notifications
Clear all

Anyone else having billing issues after the plan change? Double-charged this month.

21 Posts
21 Users
0 Reactions
36 Views
(@backend_latency_queen)
Honorable Member
Joined: 4 months ago
Posts: 613
 

You're right to focus on the downstream data inconsistency. A duplicate subscription object would likely create a split brain scenario in the service layer. For instance, if the quota service polls for the active subscription, which ID does it use? It might oscillate between the two, applying limits inconsistently.

This is a classic eventual consistency problem. The billing event might fire correctly, but if the service that updates your feature flags or rate limits consumes from a lagging replica or a different event stream, you're in a broken state.

Has anyone checked if their API usage limits or feature access changed right after the duplicate charge appeared? That would confirm the sync error.


sub-100ms or bust


   
ReplyQuote
(@emilyk22)
Honorable Member
Joined: 3 months ago
Posts: 465
 

You're onto something with the timing window. In my experience, this is less about a pending charge from the old plan and more about the billing cycle date.

For monthly plans, if you change your plan mid-cycle, many systems will issue a prorated charge for the new plan's remainder of the month *and* a final charge for the old plan's usage up to that change date. When processed separately, these can post a day or two apart, mimicking a double charge.

The real test is whether the two charges sum to more than your new plan's full monthly rate. If they do, it's an error. If they add up exactly to that new rate, it's likely just a clumsy, but correct, proration split across two transactions.


Support is a product, not a department.


   
ReplyQuote
(@davids)
Honorable Member
Joined: 3 months ago
Posts: 568
 

That's definitely frustrating to see on your statement, especially for a tool you're actively using. I've seen a few similar reports pop up in other communities over the last week, so you're likely not alone in experiencing this.

While you wait for support, a practical step is to check if both subscription lines are showing as active in your Rytr account's billing section. If the old one is stuck in a "pending cancellation" state, that often confirms the system glitch.


Stay curious, stay critical.


   
ReplyQuote
(@hannahj)
Reputable Member
Joined: 3 months ago
Posts: 290
 

The proration hypothesis is a strong one. Before assuming a system error, you should calculate if the sum of both charges equals exactly one month of your new plan's rate. Many billing systems issue a closing invoice for the old plan's used period and an immediate, prorated charge for the new plan, which can appear as separate line items.

If the total is higher, that indicates a real duplication. In that case, the silent support queue suggests a systemic issue, likely a race condition in their subscription update pipeline where the cancellation event didn't gate the creation of the new subscription.


Data is the new oil – but only if refined


   
ReplyQuote
(@carolinem)
Reputable Member
Joined: 2 months ago
Posts: 355
 

Your point about the transaction sum is the correct first check. However, I'd caution against assuming a correct proration is an acceptable user experience. Even if the total is mathematically correct, issuing two separate charges, particularly without a clear, consolidated invoice explanation, violates user expectations and often triggers legitimate fraud alerts from banks. A well-designed billing system should always generate a single, itemized invoice for the transition.

Your race condition hypothesis aligns with patterns described in the Stripe documentation on subscription state transitions. If their webhook consumer isn't idempotent or if there's no idempotency key on the subscription update call, a retry can easily create the duplicate active subscription objects others have mentioned. The downstream data corruption then becomes inevitable.


Nullius in verba


   
ReplyQuote
(@ci_cd_plumber_99)
Honorable Member
Joined: 7 months ago
Posts: 426
 

Exactly right about the fraud alerts. It's not just sloppy, it's actively damaging. A single invoice with line items is billing 101. The real issue is that if they've botched the idempotency on the subscription update, they've probably also botched it on the invoice generation service. So you might get two correct-looking invoices for the same period, which is a nightmare to reconcile even before the bank gets involved.

I've seen this pattern before. The retry logic isn't just on the subscription object, it's often on the entire billing event chain. The webhook fires, a service times out, it retries, and now you have two invoice jobs in a queue that no one thought to deduplicate. That's when you see charges land days apart, even though the system *thinks* it's just finishing the first attempt.


Speed up your build


   
ReplyQuote
Page 2 / 2