[Bug]: Error: table preferences already exists #2187

Closed
opened 2026-02-28 20:05:52 -06:00 by GiteaMirror · 2 comments
Owner

Originally created by @italocjs on GitHub (Jun 9, 2025).

Verified issue does not already exist?

  • I have searched and found no existing issue

What happened?

Description:
I am running the Actual finance server (App & Server v25.6.1) via Docker Compose on a fresh install. The server fails to load properly. This setup worked fine on first run, but after a couple of hours it now crashes with database errors related to existing tables.

Expected Behavior:
Server loads normally, allowing access to the finance app interface without errors.

Actual Behavior:
The app fails to load correctly. Console logs show multiple errors related to database migrations failing due to existing tables.

Error updating Error: table preferences already exists
at handleError ...
at execQuery ...
Error updating budget My-Finances-1f9a53f Error: table preferences already exists

Additional Context:

  • This is a fresh install with no previous data restored.
  • The error suggests migration scripts are attempting to create tables that already exist, possibly due to partial or corrupted database state.
  • No custom environment variables were set (environment section commented out).

Atual console output:

Unknown locale en-US, falling back to en [i18n.ts:60:14](http://192.168.1.18:5006/src/i18n.ts)
Backend: Trying to connect to client [kcab.worker.473433500a37746bffd1.js:121:30413](http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js)
Backend: Client connected [kcab.worker.473433500a37746bffd1.js:121:29393](http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js)
MouseEvent.mozInputSource is deprecated. Use PointerEvent.pointerType instead. [isVirtualEvent.mjs:16:4](http://192.168.1.18:5006/node_modules/@react-aria/utils/dist/isVirtualEvent.mjs)
Password fields present on an insecure (http://) page. This is a security risk that allows user login credentials to be stolen.
[login](http://192.168.1.18:5006/login)
Opened! [kcab.worker.473433500a37746bffd1.js:86:98](http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js)
Error updating Error: table preferences already exists
    handleError http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:84
    exec http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:84
    execQuery http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:121
    execQuery http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:428
    1723665565000 http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:424
    applyJavaScript http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:428
    applyMigration http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:428
[kcab.worker.473433500a37746bffd1.js:432:10873](http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js)
[Exception] Error: table preferences already exists
    handleError http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:84
    exec http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:84
    execQuery http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:121
    execQuery http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:428
    1723665565000 http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:424
    applyJavaScript http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:428
    applyMigration http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:428
[kcab.worker.473433500a37746bffd1.js:121:26822](http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js)
Error updating budget My-Finances-1f9a53f Error: table preferences already exists
    handleError http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:84
    exec http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:84
    execQuery http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:121
    execQuery http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:428
    1723665565000 http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:424
    applyJavaScript http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:428
    applyMigration http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:428

How can we reproduce the issue?

Steps to Reproduce:

Use the following docker-compose.yml configuration to deploy the Actual server:

services:
  actual_server:
    image: docker.io/actualbudget/actual-server:latest
    ports:
      - '5006:5006'
    volumes:
      - /fastStorage/docker/actual-data:/data
    healthcheck:
      test: ['CMD-SHELL', 'node src/scripts/health-check.js']
      interval: 60s
      timeout: 10s
      retries: 3
      start_period: 20s
    restart: unless-stopped

Where are you hosting Actual?

Docker

What browsers are you seeing the problem on?

Firefox

Operating System

Windows 11

Originally created by @italocjs on GitHub (Jun 9, 2025). ### Verified issue does not already exist? - [x] I have searched and found no existing issue ### What happened? **Description:** I am running the Actual finance server (App & Server v25.6.1) via Docker Compose on a fresh install. The server fails to load properly. This setup worked fine on first run, but after a couple of hours it now crashes with database errors related to existing tables. **Expected Behavior:** Server loads normally, allowing access to the finance app interface without errors. **Actual Behavior:** The app fails to load correctly. Console logs show multiple errors related to database migrations failing due to existing tables. Error updating Error: table preferences already exists at handleError ... at execQuery ... Error updating budget My-Finances-1f9a53f Error: table preferences already exists **Additional Context:** - This is a fresh install with no previous data restored. - The error suggests migration scripts are attempting to create tables that already exist, possibly due to partial or corrupted database state. - No custom environment variables were set (environment section commented out). Atual console output: ``` Unknown locale en-US, falling back to en [i18n.ts:60:14](http://192.168.1.18:5006/src/i18n.ts) Backend: Trying to connect to client [kcab.worker.473433500a37746bffd1.js:121:30413](http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js) Backend: Client connected [kcab.worker.473433500a37746bffd1.js:121:29393](http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js) MouseEvent.mozInputSource is deprecated. Use PointerEvent.pointerType instead. [isVirtualEvent.mjs:16:4](http://192.168.1.18:5006/node_modules/@react-aria/utils/dist/isVirtualEvent.mjs) Password fields present on an insecure (http://) page. This is a security risk that allows user login credentials to be stolen. [login](http://192.168.1.18:5006/login) Opened! [kcab.worker.473433500a37746bffd1.js:86:98](http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js) Error updating Error: table preferences already exists handleError http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:84 exec http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:84 execQuery http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:121 execQuery http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:428 1723665565000 http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:424 applyJavaScript http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:428 applyMigration http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:428 [kcab.worker.473433500a37746bffd1.js:432:10873](http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js) [Exception] Error: table preferences already exists handleError http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:84 exec http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:84 execQuery http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:121 execQuery http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:428 1723665565000 http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:424 applyJavaScript http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:428 applyMigration http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:428 [kcab.worker.473433500a37746bffd1.js:121:26822](http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js) Error updating budget My-Finances-1f9a53f Error: table preferences already exists handleError http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:84 exec http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:84 execQuery http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:121 execQuery http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:428 1723665565000 http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:424 applyJavaScript http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:428 applyMigration http://192.168.1.18:5006/kcab/kcab.worker.473433500a37746bffd1.js:428 ``` ### How can we reproduce the issue? **Steps to Reproduce:** Use the following docker-compose.yml configuration to deploy the Actual server: ``` services: actual_server: image: docker.io/actualbudget/actual-server:latest ports: - '5006:5006' volumes: - /fastStorage/docker/actual-data:/data healthcheck: test: ['CMD-SHELL', 'node src/scripts/health-check.js'] interval: 60s timeout: 10s retries: 3 start_period: 20s restart: unless-stopped ``` ### Where are you hosting Actual? Docker ### What browsers are you seeing the problem on? Firefox ### Operating System Windows 11
GiteaMirror added the bug label 2026-02-28 20:05:52 -06:00
Author
Owner

@italocjs commented on GitHub (Jun 9, 2025):

Note: creating a new file does seems to work. i can confirm mount point is acessible.

italo@italo-server:/fastStorage/docker/actual-data$ ls -la server-files/
total 6
drwxr-xr-x 2 root  root      3 Jun  9 17:22 .
drwxrwxr-x 4 italo italo     5 Jun  9 15:56 ..
-rw-r--r-- 1 root  root  61440 Jun  9 17:22 account.sqlite
italo@italo-server:/fastStorage/docker/actual-data$ ls -la user-files/
total 143
drwxr-xr-x 2 root  root       6 Jun  9 17:25 .
drwxrwxr-x 4 italo italo      5 Jun  9 15:56 ..
-rw-r--r-- 1 root  root   23992 Jun  9 15:59 file-11c60312-a951-479f-8360-912a9cfc2eb4.blob
-rw-r--r-- 1 root  root   23995 Jun  9 17:22 file-b080dc9c-36b1-461e-895f-96fe6010f57a.blob
-rw-r--r-- 1 root  root   16384 Jun  9 16:00 group-65073cdf-c183-4fc8-925e-37e97697c979.sqlite
-rw-r--r-- 1 root  root  249856 Jun  9 17:25 group-658d0df6-7eda-4ac0-a393-dce87508b444.sqlite
italo@italo-server:/fastStorage/docker/actual-data$
@italocjs commented on GitHub (Jun 9, 2025): Note: creating a new file does seems to work. i can confirm mount point is acessible. ```bash italo@italo-server:/fastStorage/docker/actual-data$ ls -la server-files/ total 6 drwxr-xr-x 2 root root 3 Jun 9 17:22 . drwxrwxr-x 4 italo italo 5 Jun 9 15:56 .. -rw-r--r-- 1 root root 61440 Jun 9 17:22 account.sqlite italo@italo-server:/fastStorage/docker/actual-data$ ls -la user-files/ total 143 drwxr-xr-x 2 root root 6 Jun 9 17:25 . drwxrwxr-x 4 italo italo 5 Jun 9 15:56 .. -rw-r--r-- 1 root root 23992 Jun 9 15:59 file-11c60312-a951-479f-8360-912a9cfc2eb4.blob -rw-r--r-- 1 root root 23995 Jun 9 17:22 file-b080dc9c-36b1-461e-895f-96fe6010f57a.blob -rw-r--r-- 1 root root 16384 Jun 9 16:00 group-65073cdf-c183-4fc8-925e-37e97697c979.sqlite -rw-r--r-- 1 root root 249856 Jun 9 17:25 group-658d0df6-7eda-4ac0-a393-dce87508b444.sqlite italo@italo-server:/fastStorage/docker/actual-data$ ```
Author
Owner

@youngcw commented on GitHub (Jun 9, 2025):

Try setting up https

If you need more tech support please reach out on discord

@youngcw commented on GitHub (Jun 9, 2025): Try setting up https If you need more tech support please reach out on discord
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#2187