Browse documentation

🧭 Start Here

Blackcap Overview ✨ Blackcap Feature Catalog 🧱 Technology, Administration, and Reliability Installation First Run

🚀 Deploy Blackcap

Platform Stacks and Raspberry Pi Hardware Raspberry Pi Deployment Raspberry Pi Client Services GCP Deployment Packaged Blackcap deployment Application Updates Environment Variables and Secrets Reverse Proxy and TLS Background Jobs and Schedules

🛠️ Administer Blackcap

Organizations Users, Permissions, and Authentication Configuration Workspace Backups and Restore Database Administration Regression Testing Performance and Job Status Audit, Access Activity, and Logging GeoIP and Access Location Data Retention and Purge Support Chat Administration Support Requests API Tester and Postman Instance Reporting Microwave Pie licensing for Blackcap Microwave Pie licensing for Blackcap

🍽️ Use Recipes

Recipes and the Recipe Library Recipe Import and Discovery Recipe Editing and Cache Artifacts Recipe Sharing Social Recipe Import AI Recipe Image Generation

📅 Plan Meals

Meal Planner

🛒 Use Shopping Lists

Shopping Lists and Shop a List External and Household Shopping 🧩 Chrome Extension Shop With

🧺 Manage Kitchen Inventory

🧺 Kitchen Inventory

🖥️ Use Displays

Displays and Connections Assigning and Scheduling Display Content Remote Pi Client E-Ink Rendering Menu Refresh and Rendering Noun Project Footer Images

🧑‍🍳 Cook with Let’s Cook

🧑‍🍳 Let’s Cook 🧑‍🍳 Let’s Cook Controls and Timers

🤖 Use and Administer AI

🤖 AI in Blackcap 🤖 AI Providers and Connections 🤖 AI Seeds and Usage Support Chat

🧩 Use the Chrome Extension

🧩 Blackcap Chrome Extension 🧩 Chrome Extension Recipe Capture 🧩 Chrome Extension Shop With 🧩 Chrome Extension Release and Privacy

🎮 Play Games

🎮 Games and Trivia

🔌 Integrations

Email Integration Cloud Storage Integrations Voice Assistants Shop With Integrations Authentication Providers

⚙️ Develop Blackcap

Application Architecture Database Service and Data Access SQLite and PostgreSQL Database Migrations Background Job Architecture Testing API Architecture Security and Organization Scoping UI, Icons, and Documentation Assets Blackcap-Safe Emoji Support Chat Architecture Extending Support Chat Support Chat Model Benchmark Documentation Standards Terminology

⚠️ Troubleshoot Blackcap

⚠️ Troubleshooting Licensing Troubleshooting Deployment Troubleshooting Display Troubleshooting Recipe Import Troubleshooting 🤖 AI Troubleshooting Backup Troubleshooting Database Troubleshooting Diagnostic Organization Clones Support Chat

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.

On this page