License errors
Look up the message you see. Each entry says what caused it and what to do.
If you want to know what your instance is doing between activations, and why these errors exist at all, read How self-hosted licensing works.
Start here
Two checks fix most license problems, and both take under a minute.
Click Sync plan. A renewal, a plan change, or a seat purchase does not always reach the app on its own. Sync plan fetches the current state now. It is in Workspace settings → Billing and plans, or Billing in God mode.
Check that your instance can reach Plane. Everything except an airgapped install needs outbound HTTPS to
prime.plane.soon port 443.bashcurl -sS -o /dev/null -w '%{http_code}\n' https://prime.plane.soRun it from the machine Plane runs on, not from your laptop. A timeout or a proxy error here explains most sync failures.
Errors when you activate a license key
These come back in the activation dialog, under the key field.
| Message | What it means | Fix |
|---|---|---|
Please enter a valid license key | The field is empty | Paste the key. It looks like 9240-008a-b4e4. |
License not found | The key does not exist | Re-copy it from the Prime portal. Watch for a trailing space. |
License already active for another workspace | The key is in use on a different workspace | Delink it there first, or buy another license. |
License already active for another instance | The key is in use on a different Plane install with a different domain | Delink it from the old instance or the portal. |
License is not valid | The license is not in a state that can be activated | Check its status in the portal, then contact support. |
License is not active | The license was delinked or deactivated | Activate the key again in the app, or use a different key. |
Subscription is expired | The billing period ended | Renew in the portal, then click Sync plan. |
Subscription is cancelled | The subscription was cancelled | Use a different license, or contact support to renew. |
No subscription found | The license has no subscription behind it | Contact support with the license name. |
License activation failed due to requested users greater than purchased seats | Your workspace has more paid roles than the license covers | Add seats or reduce members. |
License is not an enterprise license | You entered a Pro or Business key in God mode | Enterprise Grid activates in God mode, Pro and Business in workspace settings. |
Your license is invalid or already in use. For any queries contact support@plane.so | The app could not read a specific reason from the response | Work through Start here, then the entries above. |
A key is already in use
A license key binds to one workspace on one instance. Both "already active" errors mean the binding is still held somewhere else.
- You still have the old instance. Delink from it: Billing and plans → ... → Delink license key. See Delink a license key.
- The old instance is gone. Delink from the Prime portal instead. Open the license and click Delink license.
There is no cooldown, so you can activate again immediately afterwards. If you are moving servers, Move to another server is the ordered version of this.
You have more members than seats
Activation counts your workspace members against your purchased seats. A card-paid subscription adds the missing seats and bills them. An invoice-paid subscription cannot, so activation fails.
Either add seats in the Prime portal, or remove members, then activate again. How seats are counted explains the arithmetic.
Enterprise Grid counts every active user account on the instance as a seat, with no Guest allowance.
Errors when your instance syncs
Sync plan shows Sync error
Your instance could not reach Plane's licensing service, or got a response it could not use.
- Run the
curlcheck in Start here. - Check that outbound HTTPS to
prime.plane.sois not blocked by a firewall, proxy, or egress rule. - Confirm you are on a current Plane version. See Upgrade Plane.
The plan drops to Free 7 days after the last successful check. A Something went wrong please try again later message is the app's general error and is not specific to licensing. Treat it the same way.
Your plan reverted to Free on its own
Three causes, in rough order of likelihood.
| Cause | How to tell | Fix |
|---|---|---|
| The instance has not reached Plane for 7 days | The curl check fails | Restore outbound access, then activate the key again. Sync plan does not bring a plan back once it has dropped to Free. |
| The subscription lapsed or was cancelled | The Prime portal shows it | Renew in the portal, then Sync plan. |
| You upgraded an airgappedinstance | airgappedonly. You upgraded Plane without uploading a file for the new version | Delink the current license, then upload a license file for the new version. See the version pin. |
An airgapped instance keeps its plan when its license file cannot be read, until the licensed period ends. Then it moves to Free.
The local license cache is stuck
If the app still disagrees with the Prime portal after Sync plan, and the network is fine, clear the license state your instance has cached on disk.
prime-cli repairINFO
Prime CLI is for Docker installations only. These commands only work on Plane instances originally installed using prime-cli.
Then open Billing and plans on each licensed workspace and click Sync plan. If a workspace stays on Free, activate its key again. Enterprise Grid needs the key activated again from God mode. Your Plane data is not touched.
Errors on airgapped instances
Sync error after a Plane upgrade
If Sync plan shows Sync error after you upgraded Plane, the most likely cause is that your instance cannot find a license file matching the version it is running. The file is pinned to a version.
Download a file for your current Instance app version, delink the current license, and upload the new file. See The file is pinned to your Plane version.
Getting help
If none of the above applies, contact support@plane.so with:
- The exact error text.
- Your license name or key, and the workspace slug.
- Your Plane version, from Help at the bottom of the God mode sidebar.
- Whether the instance has outbound internet access.
- The output of the
curlcheck in Start here.

