From eb4322e99956f03673b3c2caadd07824abef83d2 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Sat, 22 Aug 2026 05:18:06 +0000 Subject: [PATCH 1/4] Update self-hosting.mdx Generated-By: mintlify-agent Mintlify-Source: dashboard-editor --- self-hosting.mdx | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/self-hosting.mdx b/self-hosting.mdx index 0d79c4f..be7e058 100644 --- a/self-hosting.mdx +++ b/self-hosting.mdx @@ -481,6 +481,36 @@ For production deployments: - Use `SMTP_OPENSSL_VERIFY_MODE=peer` - If you must use self-signed certificates, provide a CA bundle via `SSL_CA_FILE` +## Monitoring + +### System health (super-admins only) + +Super-admins can check the live state of the background job worker at **Settings → Advanced → System health**. The page shows: + +- Number of running Sidekiq worker processes +- Last heartbeat timestamp +- Maximum queue latency +- Job counters (processed, failed) +- Per-queue depth + +If the Sidekiq worker container is not running, a warning banner appears at the top of every page for super-admins. The banner links directly to the system health page so you can diagnose the problem without digging through logs. + +#### Tuning health-check thresholds + +The health check uses conservative defaults that tolerate brief restarts and Redis blips. You can override them with environment variables: + +| Variable | Default | Description | +| --- | --- | --- | +| `SIDEKIQ_HEALTH_HEARTBEAT_TIMEOUT` | `120` (seconds) | How long a worker can go without a heartbeat before it is considered stale | +| `SIDEKIQ_HEALTH_LATENCY_THRESHOLD` | `300` (seconds) | Maximum queue latency before the instance is flagged as unhealthy | +| `SIDEKIQ_HEALTH_CACHE_TTL` | `60` (seconds) | How long the health snapshot is cached between checks | + +The system health page always bypasses the cache so you see fresh state immediately after restarting the worker. + + +The Sidekiq health check only runs in self-hosted mode. Managed deployments are not affected. + + ## Troubleshooting ### Database connection errors From a0415c1f05b8773b21cde7d4c5481a6e9e932ad6 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Sat, 22 Aug 2026 05:18:14 +0000 Subject: [PATCH 2/4] Update self-hosting.mdx Generated-By: mintlify-agent Mintlify-Source: dashboard-editor --- self-hosting.mdx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/self-hosting.mdx b/self-hosting.mdx index be7e058..39c4859 100644 --- a/self-hosting.mdx +++ b/self-hosting.mdx @@ -560,6 +560,24 @@ docker compose exec web env DRY_RUN=false bin/rails security:backfill_encryption The task is idempotent, so it is safe to rerun if needed. +### Balances show zero or "No balance data available" + +If account balances show zero or the message "No balance data available for this date", the most common cause is that the Sidekiq worker container is not running. Balance calculations, net-worth updates, and account syncs all run as background jobs — if the worker is stopped, those jobs never execute. + +Check whether the worker is running: + +```bash +docker compose ps worker +``` + +If the worker is not listed or shows a non-running state, start it: + +```bash +docker compose up -d worker +``` + +Super-admins will also see a warning banner at the top of every page when Sidekiq is unhealthy. Follow the **View system health** link in the banner to see the live worker state. + ### Slow CSV imports If CSV imports are processing rows slower than expected, check your worker logs for errors: From 334c70359a612b0cb42ee9b43423928a7b3b89a9 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Sat, 22 Aug 2026 05:18:24 +0000 Subject: [PATCH 3/4] Update providers/simplefin.mdx Generated-By: mintlify-agent Mintlify-Source: dashboard-editor --- providers/simplefin.mdx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/providers/simplefin.mdx b/providers/simplefin.mdx index 9dff550..96b34d1 100644 --- a/providers/simplefin.mdx +++ b/providers/simplefin.mdx @@ -88,6 +88,12 @@ SimpleFIN is a paid service, but typically more affordable than alternatives lik ## Troubleshooting +### Duplicate accounts with the same name + +If you have two accounts at the same institution with identical display names (for example, two accounts both named "CHECKING (0001)"), Sure's sync logic previously could confuse them — the unlinked account would silently steal the linked account's connection, merge in its transactions, and overwrite its balance on every sync. + +This has been fixed. Sure now tracks each account by its upstream account ID rather than by display name alone. Ambiguous same-name matches are skipped rather than resolved incorrectly. If you were affected, re-syncing after upgrading to the fixed version will restore the correct linkage. + ### Setup token issues If you receive a 403 error when claiming a setup token: From 685e5763141f6048931ac07f5955db8bb9fde3fd Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Sat, 22 Aug 2026 05:18:39 +0000 Subject: [PATCH 4/4] Update guides/knowledge-base/troubleshooting.mdx Generated-By: mintlify-agent Mintlify-Source: dashboard-editor --- guides/knowledge-base/troubleshooting.mdx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/guides/knowledge-base/troubleshooting.mdx b/guides/knowledge-base/troubleshooting.mdx index b381d03..2218c03 100644 --- a/guides/knowledge-base/troubleshooting.mdx +++ b/guides/knowledge-base/troubleshooting.mdx @@ -233,6 +233,23 @@ Self-hosted users running a local model (Ollama, LM Studio, etc.) may see the ch +## "Add transaction" button does nothing when no account is selected + +If you click **Add transaction** on the new transaction form without selecting an account, the button previously appeared to do nothing (the request returned a 404 error). The form now re-renders with a validation error so you can see what is missing and correct it. + +## Excluded transactions disappear from account activity + +Transactions marked as excluded were previously hidden from the account activity feed entirely. This made it impossible to re-include them because there was no row to click. Excluded transactions now appear greyed-out in the account activity list so you can still open them and toggle exclusion off if needed. + +## Import fails on rules with no name or deleted rejected transfers + +Importing an `all.ndjson` export could fail with two unrelated errors: + +- **Rule with `"name": null`** — The import preflight incorrectly required a name for every rule, but the rule model allows a null name. The preflight now requires the rule's `id` instead, matching what the importer actually uses. +- **RejectedTransfer referencing a deleted transaction** — A rejected transfer whose original transaction was later deleted caused the import to abort with a hard error. These orphaned rows are now skipped with a warning instead of blocking the entire import. + +If a previous import attempt failed for either of these reasons, retry the import after upgrading. + ## Why is Sure not running auto-categorization and merchant detection on the same transactions again? Sure caches AI-generated results to avoid redundant API calls and costs. Once a transaction has been processed by AI rules, it won't be re-processed unless you explicitly reset the AI cache.