Routy

Duplicate subscriptions

An affiliate is supposed to hold exactly one active subscription. It decides their quotas, their features and what they are billed. Occasionally an account ends up with two or three at once — a plan change that didn't fully land, a signup processed twice, or a subscription imported from the old platform.

When that happens the account still works: one subscription is marked as the live one, and that is what the customer gets. But the extra row is often a symptom of something else — a plan someone assigned that never took effect, or a subscription that stopped being paid — and until someone looks, nobody knows which.

Duplicate Subscriptions (under Billing) is the list of affiliates in that state, and the screen where a system admin picks which subscription is real.

Where you'll notice it

Three places, all pointing at the same thing:

  • The Admin Dashboard — the Subscriptions card carries a Duplicates count, red when it isn't zero, and lists the affected affiliates by name underneath. This is the one you'll see without going looking. Account managers don't see this tile, because they can't read the underlying data.
  • The issue log and its notification, as a subscription_multiple_active issue against the affiliate. Opening the issue takes you to that affiliate's Subscriptions tab.
  • The affiliate's own Subscriptions tab, as an alert above the active subscription.

Who can do what

  • System admins see the list and are the only ones who can choose the live subscription.
  • Account managers are told about it through the issue log and notifications, and can read the detail on the affiliate. They cannot change which subscription is live — the control isn't shown, and the server refuses the change anyway.

Reading the list

Each row is one affiliate:

  • Active — how many active subscriptions they hold.
  • Currently live — the plan currently in force. If this reads No active subscription, the affiliate points at nothing at all, which is worse than a duplicate: no plan is being applied. Fix those first.
  • Also active — the other plans sitting behind the live one.
  • Signals:
    • Recently paid — one of these subscriptions was paid through Paddle in the last 60 days.
    • Paid plan not live — a non-free subscription is sitting inactive. That usually means a plan someone assigned that never took effect, so it's a service problem rather than untidiness.

The same alert appears on the affiliate's own Subscriptions tab, which is where the issue-log notification takes you.

Choosing the live subscription

  1. Open Resolve on the row (or the alert on the affiliate's Subscriptions tab).
  2. Compare the subscriptions side by side. For each one you see the plan, when it started, when it next bills, when it was last paid, and its Paddle ID (or Internal for a plan we bill ourselves). The one currently in force is marked Currently live and is pre-selected.
  3. Pick the one the customer is actually on. Usually that is the one being paid, or the plan they agreed to. Every other subscription will be closed — each one is labelled Will be closed so there is no guessing.
  4. Type a short reason. It's required, and it goes into the audit trail: the next person to look at this affiliate needs to know whether the choice was reasoned.
  5. Confirm with Make this the live one.

The chosen subscription becomes the live one, the others are closed, and the alert clears.

"Still billing at Paddle"

If a subscription you're about to close was paid through Paddle in the last 60 days, we stop and say so, naming the subscription and when it was last paid.

This matters because closing a subscription here never cancels anything at Paddle. Without the stop, a tidy-up leaves the customer's card being charged for a subscription we've recorded as finished.

To carry on you have to tick the acknowledgement, which asserts one of two things: you have already cancelled the subscription in Paddle, or the charge is meant to continue. Cancelling at Paddle is always a separate, manual step.

Picking a different subscription to keep can remove the problem entirely — if the recently-paid one is the one you keep, nothing risky is being closed and the stop doesn't appear.

After you confirm

Quotas are re-derived from the chosen plan shortly after the change, not instantly. A quota panel refreshed the same second may briefly show the old numbers; reload a moment later.

If someone else resolved the affiliate while you had the panel open, you'll see Already resolved instead of the choices — the affiliate now holds one active subscription and there is nothing to do.