Known Limitations
This page lists confirmed limitations. Where an alternative exists, the entry explains it. This page does not describe planned work.
Product scope
Section titled “Product scope”- It does not replace everyday budgeting. Administration, cleanup, statement reconciliation, diagnostics, queries, cross-budget sync - yes. Entering transactions, budgeting on your phone, Actual’s normal bank-sync workflow - no.
Connection modes
Section titled “Connection modes”The first budget on a server has to be connected to be enrolled
Section titled “The first budget on a server has to be connected to be enrolled”Applies to: enrolling budgets for scheduled runs.
Bench needs a server’s password or API key to enrol its first budget, and the browser only holds that for a budget you have connected to. After that, the server’s other budgets can be enrolled from the Connections tab without connecting to them.
Alternative: connect to one budget on the server, enrol it, then enrol the rest from Connections.
ActualQL cURL is HTTP API Server-only
Section titled “ActualQL cURL is HTTP API Server-only”Applies to: the ActualQL workspace.
The generated cURL calls actual-http-api’s /run-query. In Direct mode there is no such endpoint to
call.
Remembered servers
Section titled “Remembered servers”Remembering requires durable storage
Section titled “Remembering requires durable storage”Applies to: the “Remember this server” option.
Remembered secrets are stored in the server’s metadata database and survive only when /data is
persistent. The public demo disables remembering. Self-hosters must verify their volume mount; a
writable container directory is not enough to survive container replacement.
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.
Browser and deployment
Section titled “Browser and deployment”- Large budget snapshots depend on browser memory. Budget File Health and the Data Browser 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.
Staged editing
Section titled “Staged editing”- 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.
Master data
Section titled “Master data”- 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.
Schedules and rules
Section titled “Schedules and rules”- Schedule-generated rules are read-only on the Rules page and can’t be merged; manage them from the Schedules page.
- The schedule
completedflag is not a status. It’s retained for round-tripping but isn’t shown as a reliable paid/completed state.
Budget Management
Section titled “Budget Management”- 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.
Budget File tools
Section titled “Budget File tools”- Read-only. Budget File Health and the Data Browser never write back to your budget; they inspect an exported snapshot.
Budget Sync
Section titled “Budget Sync”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.
- Transaction-flow category auto-create. Dedicated Category flows can create missing categories under a placeable target group.
- Fuzzy duplicate auto-mapping - only exact duplicates can be auto-mapped (opt-in); fuzzy duplicates always go to the review queue.
FX / multi-currency
Section titled “FX / multi-currency”- 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.
Version compatibility
Section titled “Version compatibility”- Some features depend on your Actual Budget server version (for example, tags require Actual Budget v26.3.0 or later).
Requesting an enhancement
Section titled “Requesting an enhancement”If a limitation is blocking you, open a feature request on GitHub Issues describing your use case.
