Skip to content

Common questions

Start with the returned error code, then check its settings. The response's request_id helps find this operation in server logs. Do not put full keys in logs or screenshots.

What should I check if activation fails?

Check that the server URL is reachable, product ID is correct, the license code is complete and belongs to this product. Until deployment, customer computers cannot use your 127.0.0.1 address; it refers to the customer's own computer.

Error codeFirst step
LICENSE_INVALIDCheck product ID, full license key and license product
LICENSE_EXPIREDCheck license expiration; the vendor renews it when needed
LICENSE_REVOKED
DEVICE_RELEASED
License revoked or device released; SDK clears old cache
DEVICE_LIMIT_REACHEDLicense device slots full; release an old device or increase its limit
API_QUOTA_EXCEEDEDAPI hard quota exhausted; check the period and plan limits
API_BALANCE_INSUFFICIENTInsufficient API overage balance; check currency and environment
MONTHLY_QUOTA_EXCEEDEDPlatform device cap reached; separate from the license's device limit
IDEMPOTENCY_CONFLICTSame Key used for different bodies; new operation needs new Key, retries retain the original body
IDEMPOTENCY_EXPIREDOld response or device binding invalid; check state and use a new Key for a new operation

Why does it still work offline?

Offline use still checks the server signature, product, device, features and expiration locally. Only the server request is omitted. Expired caches or explicit online revocation/release responses block further use.

Why does signature or device verification fail?

A mismatched public key, another product's cache or a cache copied to a different computer can cause failure. Check trusted_keys uses the current product's key ID and public key, then check whether the operating system was replaced or reinstalled.

SDK reports clock rollback : check whether the clock moved backward. Correct it, then explicitly refresh online.

Complete error response

HTTP 403 · license revoked
{
  "error": {
    "code": "LICENSE_REVOKED",
    "message": "License was revoked"
  },
  "request_id": "99999999-9999-4999-8999-999999999999"
}
FieldMeaning and action
error.code · stringStable error identifier for program logic; do not rely on message wording.
error.message · stringHuman-readable failure reason for diagnosis or a customer-facing message.
request_id · UUIDServer-generated HTTP request ID for logs; not the license ID or Idempotency-Key.

For 400 / 415 correct fields or Content-Type; for 401 check the management key; for 403 inspect the licensing error; for 409 check limits, session state or idempotency conflicts; for 429 wait according to Retry-After. Runtime retries retain their Idempotency-Key and body. Recover management writes using each operation’s idempotency rules; never blindly repeat ordinary issuance or renewal after a timeout.

How do I read the JSON response?

Successful response data and request_id; failures return error.code, error.message and request_id. Keep the error code and request_id to locate most issues.

For email, payment or deployment settings, see Support and troubleshooting.