Skip to content

App Health

App Health reports the state of Actual Bench’s metadata database, persistence, migrations, and scheduler. It does not check your budget file; use Budget File Health for that. Use App Health after installation, upgrades, or when troubleshooting an operator issue.

App Health reporting on the metadata database, its storage and the scheduler.

This is Bench reporting on itself: whether its own database is reachable, whether the storage under it is durable, and whether scheduled work can run.

  • Database path - the configured SQLite location (ACTUAL_BENCH_DB_PATH, default /data/actual-bench.sqlite).
  • Writable - whether Bench can write to it. This says Yes or something is wrong.
  • Schema - the current version, or Not initialized if the database was never created.
  • Migration status - whether migrations are up to date.
  • Persistence - a reminder that /data has to be mounted from outside. Writable is not the same as durable; a container’s own filesystem is both writable and temporary.
  • Automations → Workers - whether Bench can start the worker threads that automations run in, how many runs are going out of the maximum, the memory limit for each, and the last run that stopped unexpectedly. See Configuration.

After installing or upgrading, open App Health and confirm:

  • Writable is Yes.
  • Schema shows a version number (not Not initialized).
  • Persistence reads Persistent when /data is mounted.

Writable: No, or persistence looking wrong, means the /data mount or its permissions need attention. See Installation and Upgrading and Backups.

  • Writable: No - the container user cannot write to /data. Fix the mount permissions.
  • Schema: Not initialized - the database was never created. Check ACTUAL_BENCH_DB_PATH actually points into the mounted volume.
  • Workers: Cannot start - Bench could not start a worker thread, so no automation runs. The reason is shown beside it. Bench tries again every few minutes, so fixing the cause needs no restart. If your platform cannot run worker threads at all, set ACTUAL_BENCH_AUTOMATION_EXECUTOR=in-thread (see Configuration).
  • Everything vanishes when you recreate the container - /data is not persisted. Mount a named volume or a host path.