Licensing Troubleshooting
Audience: System Admin, Deployment Administrator, Support Related: Microwave Pie licensing for Blackcap · Application Updates · Database Administration
Use License Required or the authenticated License Details actions for License Key recovery. The read-only /admin/license status view can also be opened before sign-in when an installation is restricted. Do not paste customer License Keys into API Tester, Database Admin, logs, support requests, or generic diagnostics.
License Required
A new install or an existing installation upgraded to licensing can show License Required until a valid Blackcap License Key is entered. System Admin access to the licensing flow remains available even while normal application routes are restricted.
Unknown Microwave Pie signing key
The License Key was signed by an unknown Microwave Pie signing key. means the credential's signing-key ID is not present in Blackcap's trusted public-key map. Confirm the deployed repository includes inky_admin/licensing/trusted_public_keys.json and that a newly added inky_admin/licensing/ directory was actually included in the Git/deployment sync. A normal production install does not need a private key or signing secret.
Invalid signature or malformed key
A malformed MPL1 credential, wrong application claim, or invalid signature is rejected locally and should not replace a working credential. Re-copy the complete License Key from the trusted licensing email/Tracker workflow. Never modify the credential text manually.
Active Offline
Active Offline means the signed credential validated locally but Microwave Pie Tracker could not be reached for an online binding/reconciliation decision. Blackcap can continue according to the signed entitlement. Normal instance reporting retries connectivity without replacing or rotating the installed License Key.
When Tracker becomes available, a successful heartbeat can confirm the binding or move Blackcap to a conflict/revoked/replacement-required state. License management must remain reachable so the System Admin can recover.
Trial Expired
Trial Expired means Blackcap has reached or passed the absolute expiration in its currently signed Trial License Key. A duration-based Trial starts with a signed offline fallback expiration. If first-use registration completes online, Tracker can replace that fallback exactly once with a newly signed expiration equal to the registration UTC time plus the Trial duration. If first use proceeds offline because registration does not complete, the fallback is locked and later connectivity cannot restart the Trial. An explicitly fixed-end Trial never shifts. After the online anchor exists, reinstalling, restarting, restoring a database backup, releasing/rebinding, resending, transferring ownership, rotating the key, or moving the system clock backward does not create a fresh Trial period. Customer data remains intact.
Use License Required or the authenticated License Details → Enter New License Key action to install a valid replacement perpetual/paid License Key. Blackcap validates the replacement before changing the local credential, so a malformed/wrong-product/rejected replacement does not destroy the expired Trial state or application data. The public-safe License Details GET remains available before sign-in for status, while credential replacement and online refresh remain System Admin-only. Normal application and Extension operations stay restricted until a valid replacement is installed.
If the system clock was accidentally set far into the future while a Trial was offline, the host-local highest trusted time may have advanced beyond expiration. Do not delete licensing state to work around it. Restore correct time, reconnect to Tracker where possible, and use a valid replacement entitlement. The rollback-protection design intentionally never moves trusted time backward.
Conflict / duplicate use
A conflict means the current valid credential is bound to another Blackcap installation. Enter the correct credential for this installation on License Required/License Details. A later successful heartbeat with a valid, correctly bound credential lets Tracker clear stale duplicate-use risk and associate the instance with the current valid license. If the installation intentionally changes to a different valid License Key, successful activation releases the previous Tracker license binding for this instance. If the replacement fails validation or is already bound elsewhere, the prior association remains unchanged.
Revoked or replacement required
A revoked credential cannot be restored by retrying it. replacement_required generally means the credential generation is stale after a security rotation. Obtain the current replacement credential from the license owner/Tracker and install it through the dedicated licensing UI.
Ownership transfer alone does not rotate a License Key; it changes who is responsible for the license.
Scope exceeded
Limited Use capacity is enforced for normal organizations, users per normal organization, and the combined Regression/Diagnostic Clone pool. Existing data is preserved when a scope is reduced. A connected Full → Limited scope change is installed on the next successful authenticated heartbeat; from that point Blackcap prevents new organizations/users beyond the Limited limits. A fully offline installation continues using its last signed scope until it reconnects. If a new entitlement-consuming operation is blocked, review License Details, Database Admin organization purposes, and current usage before deleting or changing data.
Regression runs perform a read-only capacity preflight and will refuse to start rather than changing the installed license or partially creating temporary organizations.
Safe diagnostic surfaces
- Public License Details (
GET /admin/license): available without login and limited to application, License Number, scope, effective status, period/end, and compliance. It has no credential/replacement/refresh controls. - Authenticated License Details: System Admin diagnostic view with safe reference, masked credential/fingerprint, Trial timing, entitlement revision/generation, online status, usage, and compliance. Refresh License Details runs the normal instance-reporting registration/heartbeat path and then refreshes the displayed license status in place.
- System → License: authenticated high-level status summary.
- API Tester → Licensing → License Status: System Admin read-only status including Trial/fallback/revision metadata; no full credential.
- API Tester → System → Trigger Instance Report: confirmed System Admin diagnostic action using the normal reporting path; it is intentionally excluded from Postman export.
- Database Admin → License / Entitlement Diagnostics: safe derived online status, Trial activation/fallback lock, entitlement revision/generation, trusted time, usage, and compliance; no full/encrypted credential.
- Database parity: verifies licensing schema/purpose/locking metadata on SQLite and PostgreSQL.
Tracking-contact timestamps are intentionally not exposed to users, including System Admins.
Packaged deployment is not marked Installed
Use License Details → Refresh License Details to trigger the normal instance-reporting path. Confirm the packaged License is active and the host-local distribution metadata exists. Tracker marks a Package Installed only after a validated licensed heartbeat reports the matching Package Download, Release, full Git commit, and manifest digest. The bootstrap credential itself must never be copied into diagnostics or logs.