Troubleshoot license and domain errors
When validation fails, the License panel shows a red cross followed by a short error code. This page explains what each code means and what to do about it.
Read the panel first
Open Settings → POM AI → License. The Status line is the authoritative local state:
- a green tick and a status word mean the last check succeeded;
- a red cross and a code mean it did not, and the code is what you look up below.
Note the code exactly. Codes are stable; the surrounding wording may be translated.
Key and subscription problems
| Code | Meaning | What to do |
|---|---|---|
missing_license_key |
No key was sent | Paste the key and save |
invalid_license_key |
The key is not recognised | Re-copy it from My Account → Licenses & Downloads; check for a truncated paste. If it was rotated, the old key no longer exists |
license_inactive |
The license is not active — typically suspended | Check the subscription's payment state on the account |
license_expired |
The paid-through date has passed | Renew, then select Revalidate |
product_mismatch |
The key belongs to a different POM product | Use the POM AI key, not another product's |
reconnect_required |
The stored key can no longer be decrypted | Paste the key again; this follows a WordPress salt change |
license_expired and license_inactive are re-checked against the subscription before being reported, so a renewal that has just gone through is usually picked up on the next attempt. If it is not, use Revalidate to force a fresh check.
Domain problems
| Code | Meaning | What to do |
|---|---|---|
domain_not_authorized |
This host is not authorized for this license | Save the key on this site, or add the domain from the account |
domain_limit_reached |
The plan's domain capacity is full | Free a slot or upgrade the plan |
network_not_authorized |
The license is bound to a different WordPress network | Use the key on its own network, or contact support about rebinding |
local_domain_not_allowed |
The plan does not allow local or development hosts | Use a staging or production host, or a plan that allows local |
invalid_domain |
The submitted host could not be parsed, has no dot, contains invalid characters, or is an IP address on a plan that forbids them | Enter the plain host, such as example.com |
domain_blocked |
The domain was blocked administratively for this license | Contact support |
domain_not_authorized also appears when the host is authorized under a different license of the same product. The message says the domain is already authorized under another license: deactivate it there first, or contact support if it is not yours.
The most frequent cause of domain_not_authorized, though, is a site that moved. Check the Domain line against the site's real host. See Authorize a domain to use POM AI.
Plan and operation problems
| Code | Meaning | What to do |
|---|---|---|
operation_not_allowed |
The plan does not include this capability — AI credit operations, updates or downloads | Check the plan on the account |
feature_not_allowed |
The plan does not include the requested feature | As above |
plan_not_found / plan_misconfigured |
The plan configuration on the account is inconsistent | Contact support; this is not fixable from the site |
Rate limiting
| Code | Meaning | What to do |
|---|---|---|
rate_limited |
Too many validation or activation attempts | Wait, then try once. Do not retry in a loop |
Repeated save attempts with a wrong key are the usual trigger. Stop, get the correct key, then make one attempt.
Transport problems
| Code | Meaning | What to do |
|---|---|---|
network_error |
The account server could not be reached, or returned something unreadable | Check outbound HTTPS from the server; check for a proxy stripping headers |
licensing_unavailable |
The account service is temporarily not able to answer | Retry later; contact support if it persists |
invalid_signature |
The request could not be verified | Check the server clock; a large clock skew is the usual cause |
A network_error is treated as transient. It is not recorded as a validation failure, it does not clear the stored key, and it does not trigger a license warning. A previously valid license also keeps working through a short account outage.
That means a site whose License tab still shows a valid status but whose AI has stopped is almost certainly a connectivity or credit problem, not a license problem.
Local notices
Two messages come from the site rather than the account:
- The license could not be stored. The key validated but writing it locally failed. Check that the database is writable and retry.
- The license server could not deactivate this domain. The local key was kept so you can try again safely. An unlink attempt could not reach the account. Retry when connectivity returns, or remove the domain from the account instead. See Remove an authorized domain.
Symptoms without a code
| Symptom | Likely cause |
|---|---|
| The credit balance never loads, but the license is valid | Outbound HTTPS blocked, or a security plugin blocking admin-ajax.php |
| The balance loads but every operation fails | The balance is zero, or the plan does not include credit operations |
| A license warning appears on a subsite while the network key is valid | Correct behaviour: the subsite needs its own key. See Configure POM AI on WordPress multisite |
| No plugin update ever appears | The network key, or POM AI not being network-active. See Understand the network license used for updates |
| The License tab is not visible | The account lacks administrator rights |
A working order of investigation
- Read the Status line and note the code.
- Compare the Domain line with the site's real host.
- Try Revalidate once.
- Check the subscription's state on account.pom.es.
- Check the authorized domain list and the used-of-total count.
- Check that the server can reach the account host at all.
- Only then contact support.
Reporting to support
Include the site URL, whether it is single-site or multisite, the POM AI version, the exact code, the Domain line as displayed, the time, and what you had just done.
Never include the license key itself, an MCP API key, an OAuth token or an authorization code. Support does not need them, and sending one means it has to be rotated afterwards.