Troubleshooting

Common desktop-template failures, causes, and fixes.

Use this as a quick symptom → cause → fix index. The Logs page and pnpm dev terminal are the first places to look for the underlying error.

Install and startup

SymptomLikely causeFix
Rust or webview dependency errorMissing platform prerequisitesInstall Rust plus the macOS CLT, Windows MSVC/WebView2, or Linux WebKitGTK/AppIndicator packages. See Installation.
First pnpm dev seems stuckInitial Rust compilationWait for the first crate build; later builds are incremental.
Port 1420 is in useAnother Vite process is runningStop the other process, or free the port configured as devUrl.
Blank windowFrontend exception, CSP problem, or unavailable webviewRun pnpm dev, inspect its output and Logs, then check the themed error fallback.
WebView2 missingWindows runtime is unavailableInstall WebView2; the bundled installer uses the download bootstrapper.
SymptomLikely causeFix
SupabaseConfigErrorScreenAuth is on while the Supabase URL/key are missing or invalidSet VITE_SUPABASE_URL and VITE_SUPABASE_PUBLISHABLE_KEY, or disable auth. See Authentication.
Auth or billing return does not open the appScheme is not registered, or redirect is not configuredCheck the rebranded scheme in tauri.conf.json and Supabase Auth URL Configuration. On Windows development, test an installed build or use the documented run-once workaround. See Deep Links.
Billing is absent or lockedFlag, product IDs, webhook, or entitlement row is missingEnable VITE_BILLING_ENABLED, set product IDs, then confirm the webhook writes subscriptions. See Creem Setup.
Webhook signature failsWrong Edge secretReset CREEM_WEBHOOK_SECRET with supabase secrets set; it must not be in app .env.

Native services

SymptomLikely causeFix
Keychain prompt or ENCRYPTION_UNAVAILABLEOS keychain is unavailable, or macOS asks for unsigned-dev accessEnsure a working OS keychain; accept the expected macOS development prompt. See Settings Store.
Linux tray missingAppIndicator dependencies are absent or the desktop environment lacks tray supportInstall the AppIndicator prerequisites and test on a tray-capable desktop environment.
Bindings-drift CI failureRust command types changed without committed bindingsRun cargo test --manifest-path src-tauri/Cargo.toml, review src/lib/bindings.ts, and commit the generated change.
Raw translation key rendersLocale key is missingAdd it to both EN and ZH locale files and namespace registration. See Internationalization.

Packaging and updates

SymptomLikely causeFix
Gatekeeper says the app is damaged or blockedmacOS build is unsigned or not notarizedSign and notarize the distribution build; development builds are not a distribution test. See Packaging.
SmartScreen warningWindows installer lacks reputation or signingSign with WINDOWS_CERTIFICATE; an EV certificate earns immediate reputation.
Update signature mismatchFeed was signed by a different private key than the configured public keyRebuild/sign with the matching minisign key pair and publish matching artifacts. See Auto-Update.
Update check cannot reach the feedWrong endpoint or missing manifest/artifactCheck runtime/build UPDATE_SERVER_URL, latest.json, and every URL/signature in it.
Linux package does not self-updateThe installed format is deb or rpmUse the distribution's package manager or manual download; only AppImage is supported by the updater.

On this page