Foliox License Docs

FAQ & troubleshooting

The reasons your software might refuse a key, and how to fix each one.

Reason codes

reasonWhat it meansWhat to do
hwid_mismatchThe key is bound to a different computer (device-locked keys only).The customer requests a device reset on the license check page; you approve it in the dashboard. If the key is meant to be shared, give out a public key instead.
not_activatedYou called verify for a key that was never activated (or, for a multi-device key, not yet on this device).Call activate first (the SDK does it automatically).
device_limitThe key is already used on as many devices as it allows.Reset its devices, raise its device count (paid plans: up to 3, 5 or 15), or upgrade for a bigger public-key limit.
expiredThe key’s end date has passed.Extend the key in the dashboard — it works again immediately, on the same computer.
revokedYou (or the seller) revoked it.Restore it from the dashboard if that was a mistake.
suspendedThe account that issued the key is suspended.Contact the service operator.
not_foundNo such key for that product slug.Check the slug and that the customer pasted the whole key.
malformed_keyThe key fails its checksum — usually a typo.Ask the customer to re-enter it; dashes are optional.
blockedThe device or address was banned.Only the service operator can lift this.

One key for many users

Generate the key with the Public key switch on (or "keyType": "public" in the automation API). A public key never binds to a device: everyone who has it can activate and use it, on as many computers as they like, at the same time. Expiry and revocation still work — revoking it stops every copy at once. Use device-locked keys for anything you sell per customer, because anyone who sees a public key can use it. See key types.

My app fails when the internet is down

The SDK falls back to its cached, signed “valid” answer for up to 72 hours after the last successful check. If the customer has never completed a check on that machine, there is nothing to fall back on and the app must be online for the first activation.

I get 429 responses

The API rate-limits activation and verification per address and per key (public keys skip the per-key limit, since many people share them). A shipped app should check on start-up (and maybe once a day), not in a tight loop. Reset requests and customer lookups have their own, stricter limits.

Signature verification fails

Can I choose my own product ID?

No — the service generates it (a random, unique value) so nobody can guess or squat on yours, and it never changes once created. Copy it from the product’s page into your app.

Customers didn’t get their e-mail