My licence key will not activate. What does the error mean?
Run python -m app.licensing activate and read the error. The usual causes are outbound HTTPS to hub.backupwall.com blocked, a mistyped or already-used key, a private or NAT address, or a wrong clock. The server stays usable and retries every 6 hours.
Run activation and read the answer
cd /opt/backupwall && BACKUPWALL_ENV_FILE=/etc/backupwall/backupwall.env /opt/backupwall/.venv/bin/python -m app.licensing activate
"reached": true and "state": "licensed" mean it worked. Any other answer has an "error" text and exit code 1. If activation fails, the server stays usable and retries by itself every 6 hours; in the beta nothing is stopped either way.
What each message means
| What it says or means | Likely cause | What to do |
|---|---|---|
could not reach the licence service (...) |
Outbound HTTPS to the licence service is blocked: a firewall on the server (CSF, firewalld), the cloud's egress rules, or DNS. | Allow outbound TCP 443 to hub.backupwall.com (by name: its address can change). Check: curl -sS -o /dev/null -w '%{http_code}\n' https://hub.backupwall.com/trust-bundle must print 200. Then run activate again. |
answered 400 (the licence request was refused ...) |
A mistyped key; a key that is suspended, expired or revoked; a key already tied to another server; or an address the service will not accept. | Compare the key with your invitation. If it was used on another server, see Activate or move your licence. |
answered 400 and your address is private or behind carrier-grade NAT |
The service accepts only a public IPv4 address. A private (10.x, 172.16-31.x, 192.168.x) or CGNAT (100.64.x-100.127.x) address cannot activate. |
curl -4 -s https://ifconfig.me shows the address the outside world sees. Behind a NAT or gateway, the key is tied to the gateway's public address, which must stay the same. A cloud server with a public IP mapped to a private one is fine. A server with no public outbound address cannot be licensed: tell PortWall. |
no licence key is configured (BACKUPWALL_LICENSE_KEY) |
The key line in /etc/backupwall/backupwall.env is empty, or the command ran without BACKUPWALL_ENV_FILE=... in front. |
Set the line and run the command exactly as shown. |
answered 429 (too many refused requests ...) |
Too many refused attempts from this address. | Wait a while and try once. Do not retry in a loop. |
stamped in the future - check the system clock, or a lease that could not be used |
The server's clock is wrong. | Fix time sync (chronyc tracking or timedatectl), then activate again. |
| "bound to another server" | New IP, new hardware, a rebuilt server or a reinstall that wiped /var/lib/backupwall. |
BackupWall re-binds once by itself; otherwise run python -m app.licensing rebind. 3 re-binds per key in any 30 days; then write to PortWall. |
Banner after install
A server with no key, or one that has not reached the licence service yet, shows a banner after the install: Unlicensed until it first reaches the service, then Grace for up to 3 days. That is expected. Add the key or open the port. In the beta nothing is stopped.
Still stuck? Open a ticket at portwall.net/billing or write to [email protected], and attach a support bundle. See Report a problem and make a support bundle.