Licence won't activate
The most common reasons a licence key refuses to activate, with a decision tree to identify which one applies to you.
You pasted your licence key, clicked Activate, and got an error instead of a green status. This page is a decision tree to help you find out why. Work through it top-to-bottom; the most common causes are at the top.
Step 1 — Confirm the key is typed correctly
Even with paste, character-set issues can mangle a licence key. Open NivoSync → Licence and visually compare what is in the input box to what is in the welcome email or in your account portal.
The format is always:
NS-XXX-XXXXXXXX-XXXXXXWhere:
NS— literal product prefix.XXX— tier (STDfor Standard; other tier codes reserved for internal use).XXXXXXXX— 8 hex characters.XXXXXX— 6 alphanumeric checksum characters.
Common typing issues:
- Trailing space after the final character — the activator strips it, but some browsers paste a non-breaking space (U+00A0) that does not strip cleanly. Re-paste from the source.
- Letter
Osubstituted for the digit0(or vice versa). The checksum block usually contains both; double-check. - Hyphens replaced with em-dashes by an over-helpful Pages / Word app. Re-copy from the plain text of the welcome email.
If the key passes the local checksum check, the plugin allows the Activate button. If it doesn't, you get "Invalid licence key format" before any server round-trip — that's a typo, not a server issue.
Step 2 — Check the bound domain
This is the #1 cause of activation failures in the wild.
Every licence is bound to the domain it was first activated on. If you activated the licence on dev.yoursite.com and you're now trying to activate the same key on yoursite.com, the server rejects with domain_mismatch.
To check which domain a key is currently bound to:
- Log into nivosync.com/account/licenses.
- Find the licence in the list.
- Read the Bound domain column.
If the bound domain is wrong (you originally activated on staging, now want to move to production):
- Self-service path: in the account portal, click Manage → Release activation. This frees the key. You then re-activate on the new domain from WP admin.
- Manual path (if self-service fails): email
support@nivosync.comwith the licence key and the target domain. Manual re-bind is usually done within one business day.
Step 3 — Check max activations
A Standard licence supports one active domain at a time. If you have already activated on two sites and you're trying to activate on a third, you get max_activations_reached.
You can release and re-bind as many times as you like — the limit is on simultaneous activations, not total.
The fix is identical to Step 2: release the old activation in the account portal, then re-activate on the new site.
Step 4 — Check outbound HTTPS
If the activator never reaches the licence server, you'll see a transport error rather than a server-rejection error. Look for one of:
- "Could not connect to licence server"
- "cURL error 28 (Operation timed out)"
- "cURL error 7 (Failed to connect)"
- "SSL handshake failed"
These mean your hosting provider is blocking outbound HTTPS to api.nivosync.com. Run this diagnostic from the server:
# SSH into your server, then:
curl -v https://api.nivosync.com/api/v1/healthIf the curl fails with the same kind of error, the issue is at the hosting layer. Common causes:
- Outbound firewall rules — some shared hosts (notably WPEngine in legacy plans) block arbitrary outbound HTTPS. Whitelist
api.nivosync.comon port 443 with the provider. - DNS resolution failure — the server cannot resolve
api.nivosync.com. Check/etc/resolv.confor the hosting DNS panel. - Old CA bundle on the server — uncommon on PHP 8.1+, but possible. Update
ca-certificates(Debian/Ubuntu:apt update && apt install -y ca-certificates). - PHP cURL not installed — extremely rare on production WordPress, but possible on minimal Docker setups. Install via
apt install -y php8.1-curl(or whatever your PHP version is).
If the curl works but the plugin still fails, the issue is WordPress-specific — check the next step.
Step 5 — Check for a WordPress HTTP API filter
Some security plugins (Wordfence, iThemes Security) and some performance plugins (LiteSpeed Cache in certain modes) hook into the WordPress HTTP API and can intercept or strip the request the licence client makes.
Temporarily disable each one and retry activation. Whichever plugin made the difference is the culprit; whitelist the licence server domain in its settings.
You can also confirm the request is going out at all by adding this to wp-config.php temporarily:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'NS_DEBUG', true );Activate again, then read wp-content/debug.log. You should see lines like:
[NS][info] License activation: sending POST to https://api.nivosync.com/api/v1/license/activate
[NS][info] License activation: response 200 in 412msIf the POST line never appears, the request is being blocked before it leaves WordPress.
Step 6 — Edge cases worth knowing
Licence purchased today, activation says "licence not found"
Race condition: the licence has been created in our database but the search index our verify endpoint reads from hasn't picked it up yet. Wait 60 seconds and retry. If still failing after 5 minutes, email support.
Site is behind Cloudflare with "Under Attack" mode on
Cloudflare's bot-fight mode can challenge the outbound request from WordPress's licence client. Either turn off "Under Attack" mode on the apex domain temporarily, or add a Cloudflare page rule to bypass for */wp-admin/admin-ajax.php?action=ns_license_*.
Multisite installs
NivoSync activates per site, not per network. Each subsite needs its own licence (or you need a Developer tier that supports up to 5 domains). Network-activating the plugin does not auto-activate the licence on all subsites.
Site is a local dev environment (.local, .test, localhost)
Local domains are accepted but counted as dev activations — they do not consume your production seat. If you are seeing domain_mismatch on .local, it's because you previously activated on a real domain and the licence is still bound there.
Still stuck?
Send support@nivosync.com the following so we can solve it in one round:
- The licence key (paste it; we'll handle it securely).
- The exact red-banner error text.
- The output of
curl -v https://api.nivosync.com/api/v1/healthfrom your server. - Whether the site is multisite, single site, or local dev.
- A list of any security or performance plugins active on the site.
Typical resolution time: same business day during UK hours.