> ## Documentation Index
> Fetch the complete documentation index at: https://docs.particle.pro/llms.txt
> Use this file to discover all available pages before exploring further.

# pending_plan_change_exists

> Operation blocked because a deferred plan change is scheduled to take effect at end-of-term

export const BillingLink = ({children}) => {
  return <a href="https://platform.particle.pro/billing">{children}</a>;
};

|                    |                              |
| ------------------ | ---------------------------- |
| **HTTP status**    | `409 Conflict`               |
| **Error code**     | `pending_plan_change_exists` |
| **Resolve action** | `cancel_pending_plan_change` |

## What happened

The organization has a deferred plan change scheduled for the end of the current billing period (typically a paid → free downgrade), and the requested operation can't run safely while that schedule exists.

Today the only operation that returns this error is `POST /v1/organizations/{org_id}/billing/addons`. The underlying constraint: at the scheduled change date, Orb resets each price interval's `fixed_price_quantity` to the *target* plan's defaults. Any add-on quantity bumped between now and the change date would be silently overwritten — the customer would pay for capacity they never effectively used. We reject up front rather than let that happen quietly.

## How to fix

Cancel the pending plan change first, then make the add-on adjustment:

```
POST /v1/organizations/{org_id}/billing/pending-plan-change/cancel
```

The response carries the refreshed `Organization` with `pending_plan` and `pending_plan_effective_at` cleared. After this, `POST /billing/addons` is unblocked.

You can also visit your <BillingLink>organization's billing settings</BillingLink> to cancel the pending change from the UI, or simply wait for the change date — once Orb applies the deferred transition, the schedule is gone and add-on adjustments are fine again.

If you only wanted to change plans (not adjust add-ons), `PUT /v1/organizations/{org_id}/billing/subscription` with a new target overwrites any existing pending change in place — no cancel-then-PUT round-trip needed.
