---
url: /payglocal-whmcs/errors.md
description: >-
  What PayGlocal for WHMCS error conditions mean — key file, JWS verification
  and license-inactive behaviour — and how to resolve each.
---

# Error reference

This page lists the conditions PayGlocal for WHMCS can run into, what each one means, and how to
resolve it. Every one of these is recorded in **Utilities → Logs → Gateway Log**, so read the
latest PayGlocal entry alongside this table.

## Payment and callback conditions

| Condition | What it means | How to resolve |
| --- | --- | --- |
| **Key file could not be read** | The gateway couldn't open a `.pem` key at the configured path. | Check the absolute path, that the file exists, and that it's readable by the web-server user (`chmod 640`). |
| **JWS verification failed** | The signature on PayGlocal's callback couldn't be validated. | Confirm the PayGlocal public key and its KID match the environment (UAT vs production) and that the key hasn't been rotated or expired in the GCC dashboard. |
| **Status cross-check mismatch** | The signed callback and PayGlocal's status API don't agree on the payment result. | Re-check MID and environment; retry the payment. The invoice is not marked paid unless both checks agree. |
| **Wrong environment / keys** | UAT keys are in use with Sandbox Mode off, or production keys with it on. | Match the key pair and KIDs to the mode: UAT keys with Sandbox = Yes, production keys with Sandbox = No. |

## License-inactive behaviour

When the license is not active, PayGlocal disables **payment processing**: customers can't complete
new PayGlocal payments until the license is active again. There is no countdown or day-count — the
check runs quietly in the background against relyweb.co, tolerates brief outages, and restores
processing as soon as the license is valid.

To resolve: re-check the **License Key** in **Setup → Payment Gateways → PayGlocal**, confirm your
server can reach relyweb.co over HTTPS, renew if a Leased license has lapsed, and **Save Changes**.

## ionCube

PayGlocal ships as an ionCube-encoded build and will not run without the ionCube Loader. If the
loader is missing or too old, the module simply won't load until you install a supported loader —
see [Requirements](/payglocal-whmcs/requirements) for versions.

## Related pages

* [Troubleshooting](/payglocal-whmcs/troubleshooting) — step-by-step fixes
* [Configuration](/payglocal-whmcs/configuration)
* [Licensing](/payglocal-whmcs/licensing)
* [Requirements](/payglocal-whmcs/requirements)
