Skip to content

License Recovery

The control layer locks; customer infrastructure does not. These steps unlock PteroCloud without deleting or rebuilding anything.

Quick triage

php artisan pterocloud:license:diagnostics --json
php artisan pterocloud:license:verify

The diagnostics never print the key or token.

Common scenarios

Server was unreachable, lease lapsed (lease_expired)

  1. Restore outbound HTTPS to the licensing API.
  2. php artisan pterocloud:license:refresh.
  3. On success the state returns to active; no reinstall required.

Suspended / revoked

  1. Resolve the commercial issue with the vendor.
  2. The vendor unsuspends the license; the next refresh ingests a signed lease with a higher lease_generation and unlocks automatically.
  3. If it does not unlock, run pterocloud:license:refresh and check that the response lease_generation is higher than the recorded one.

Installation limit reached

  1. On another (stale) installation run php artisan pterocloud:license:deactivate (confirmation required).
  2. Re-run pterocloud:license:activate here.
  3. A failed install releases its own slot (INSTALL_FAILED_PENDING_RELEASE).

Copied/cloned installation (unverified / binding mismatch)

The lease is bound to the original installation UUID. Cloning the panel does not clone a license.

  1. Generate a fresh installation: pterocloud:license:activate on the clone.
  2. If the installation limit is hit, deactivate the source first.

Tamper warning (tamper_suspected)

  1. Restore the security-critical files from the signed release.
  2. Reinstall/refresh the signed release manifest.
  3. pterocloud:license:verify should return PASS.

Clock anomaly

  1. Fix NTP / system time.
  2. php artisan pterocloud:license:refresh to revalidate online.

Uninstall

Uninstall works without a valid license. Use the admin uninstall/repair routes (allow-listed while locked) or remove the extension files. Uninstall does not require or consume a license, and it never deletes customer VMs, disks, backups or IPs by itself.

Reboots and process restarts

A systemd restart does not bypass enforcement: the service provider re-runs the license gate at boot, and the lease store is re-verified. A restart with a lapsed lease stays locked until revalidation succeeds.