Skip to content

Known Limitations

This page lists current, confirmed limitations so you know what to expect. Each entry describes the impact and, where one exists, an alternative. Limitations are removed as they are resolved — this is not a roadmap and includes no delivery promises.

  • Actual Bench does not replace everyday budgeting. It supplements Actual Budget for administration, cleanup, diagnostics, queries, and cross-budget sync — not day-to-day transaction entry or reconciliation.

Direct-mode unattended sync is not supported

Section titled “Direct-mode unattended sync is not supported”

Applies to: Budget Sync using Direct Actual Server mode.

Direct mode runs the Actual engine in the browser, so scheduled sync can’t continue after the browser is closed.

Alternative: Use the client-side schedule while Actual Bench is open, or configure both sides through HTTP API Server mode for unattended server-side sync.

Applies to: the ActualQL workspace.

cURL generation targets actual-http-api’s /run-query endpoint, so it is available only for HTTP API Server executions, not Direct mode.

Applies to: the “Remember this server” option.

Remembered secrets are stored in the server’s metadata database, so the option is only offered when that database is durable (a mounted /data volume). On an ephemeral runtime such as the public demo, it is hidden.

A forgotten passphrase can’t be recovered

Section titled “A forgotten passphrase can’t be recovered”

Applies to: remembered servers.

The passphrase and its derived key are never stored, so a lost passphrase means the encrypted secrets cannot be decrypted — by design.

Alternative: use Forgot passphrase? on the unlock panel to reset the vault, then set a new passphrase and re-save your servers. Changing the passphrase (when you still know it) re-encrypts all saved servers instead.

Remembered servers are per-instance, not synced across devices

Section titled “Remembered servers are per-instance, not synced across devices”

Applies to: remembered servers.

They live in one Actual Bench instance’s database; there is no cross-device sync of remembered credentials.

  • Large budget snapshots depend on browser memory. Budget File Tools process the exported snapshot locally in the browser; very large files may be constrained by available memory.
  • The unattended scheduler is single-instance. It runs in-process and is designed for one instance; it does not coordinate across multiple replicas.
  • Notes save immediately. Note edits are not part of the staged Save and are not reverted by Discard. See Core Concepts.
  • Query results reflect saved state. ActualQL results do not include unsaved staged edits.
  • Account budget type is fixed after creation. On-budget / off-budget can’t be changed later (an Actual Budget constraint).
  • Transfer payees are restricted. They are system-managed and can’t be edited or bulk-deleted like regular payees.
  • Income categories can’t move groups. They stay locked to the single income parent group.
  • Schedule-generated rules are read-only on the Rules page and can’t be merged; manage them from the Schedules page.
  • The schedule completed flag is not a status. It’s retained for round-tripping but isn’t shown as a reliable paid/completed state.
  • Carryover is toggled via the right-click menu, not edited directly as a grid cell.
  • Category-to-pool transfers are not supported (transfers require both a source and destination category).
  • The grid is not virtualized, so very large category lists may scroll slowly.
  • Read-only. Budget File Health and the Data Browser never write back to your budget; they inspect an exported snapshot.

Not currently in scope:

  • True Actual transfer-linked sync (same-budget flows use a plain copy).
  • Automatic (non-review) target deletes — deletion is always review-first.
  • Category auto-create during sync.
  • Fuzzy duplicate auto-mapping — only exact duplicates can be auto-mapped (opt-in); fuzzy duplicates always go to the review queue.
  • No FX gain/loss accounting.
  • No silent recalculation of past conversions — rates lock at first sync.
  • No multi-currency within a single budget file — conversion applies to cross-currency sync between budgets.
  • Rate availability depends on the provider and the coverage you’ve filled or imported.
  • Some features depend on your Actual Budget server version (for example, tags require Actual Budget v26.3.0 or later).

If a limitation is blocking you, open a feature request on GitHub Issues describing your use case.