[Bug]: Account Column TYPE not available via ActualQL #2601

Closed
opened 2026-02-28 20:20:57 -06:00 by GiteaMirror · 6 comments
Owner

Originally created by @Phil89a on GitHub (Nov 8, 2025).

Verified issue does not already exist?

  • I have searched and found no existing issue

What happened?

Trying to access the column TYPE from the Accounts Table using ActualQL

const tquery = api.q('accounts') .select(['*']); const accountsResult = await api.aqlQuery(tquery);

This returns the columns ....

{ "id": "4dc4b8a6-292d-4357-97f0-c343a74c242e", "name": "xxxxxxxxxxxx", "offbudget": false, "closed": false, "sort_order": 4096, "tombstone": false, "account_id": "5cd7b838-1bc6-4652-be3b-e8620af8559e", "official_name": null, "account_sync_source": "goCardless", "last_reconciled": "1762597320355", "last_sync": "1762581605830" },

Missing for my requirement is the TYPE column - but also a number of other columns are missing. It seems TYPE is returned using the API getAccounts, but I am using ActualQL, so I can pull the reconciled and sync columns.

How can we reproduce the issue?

Run an ActualQL query against the accounts table; for example:

const tquery = api.q('accounts') .select(['*']); const accountsResult = await api.aqlQuery(tquery);

Where are you hosting Actual?

Docker

What browsers are you seeing the problem on?

Safari

Operating System

Mac OSX

Originally created by @Phil89a on GitHub (Nov 8, 2025). ### Verified issue does not already exist? - [x] I have searched and found no existing issue ### What happened? Trying to access the column TYPE from the Accounts Table using ActualQL ` const tquery = api.q('accounts') .select(['*']); const accountsResult = await api.aqlQuery(tquery);` This returns the columns .... ` { "id": "4dc4b8a6-292d-4357-97f0-c343a74c242e", "name": "xxxxxxxxxxxx", "offbudget": false, "closed": false, "sort_order": 4096, "tombstone": false, "account_id": "5cd7b838-1bc6-4652-be3b-e8620af8559e", "official_name": null, "account_sync_source": "goCardless", "last_reconciled": "1762597320355", "last_sync": "1762581605830" },` Missing for my requirement is the TYPE column - but also a number of other columns are missing. It seems TYPE is returned using the API getAccounts, but I am using ActualQL, so I can pull the reconciled and sync columns. ### How can we reproduce the issue? Run an ActualQL query against the accounts table; for example: ` const tquery = api.q('accounts') .select(['*']); const accountsResult = await api.aqlQuery(tquery);` ### Where are you hosting Actual? Docker ### What browsers are you seeing the problem on? Safari ### Operating System Mac OSX
GiteaMirror added the API label 2026-02-28 20:20:57 -06:00
Author
Owner

@MatissJanis commented on GitHub (Nov 10, 2025):

👋

I'm a bit confused: what column is missing? Could you please provide the output you receive from using the AQL query and also the output you receive from api.getAccounts()? These are the columns api.getAccounts() returns.


Note:

Easier reproduction: use this: window.$query(window.$q('accounts').select(['*'])); in browser console.

@MatissJanis commented on GitHub (Nov 10, 2025): 👋 I'm a bit confused: what column is missing? Could you please provide the output you receive from using the AQL query and also the output you receive from `api.getAccounts()`? These are the columns [api.getAccounts()](https://github.com/actualbudget/actual/blob/matiss/fighting-ai-slop-blog-post/packages/loot-core/src/server/api-models.ts#L22:L29) returns. --- Note: Easier reproduction: use this: `window.$query(window.$q('accounts').select(['*']));` in browser console.
Author
Owner

@Phil89a commented on GitHub (Nov 10, 2025):

I am looking for the TYPE column as returned in the getAccount API - this column is not being returned from the ActualQL against the Accounts table...

Image
@Phil89a commented on GitHub (Nov 10, 2025): I am looking for the TYPE column as returned in the getAccount API - this column is not being returned from the ActualQL against the Accounts table... <img width="802" height="486" alt="Image" src="https://github.com/user-attachments/assets/fc29eb93-7ad5-44e3-9bab-1f6f7a937d7f" />
Author
Owner

@MatissJanis commented on GitHub (Nov 10, 2025):

Thanks! There actually is no type column for accounts. It was removed ~2 years ago, but the docs were not updated.

I have fixed the docs here: https://github.com/actualbudget/actual/pull/6106

@MatissJanis commented on GitHub (Nov 10, 2025): Thanks! There actually is no `type` column for accounts. It was removed ~2 years ago, but the docs were not updated. I have fixed the docs here: https://github.com/actualbudget/actual/pull/6106
Author
Owner

@Phil89a commented on GitHub (Nov 10, 2025):

Shame - I can see it is still in the tables and I had great use for it :-) But have worked around it now (I needed to group Accounts into different groups; e.g. Bank Accounts, Credit Cards, Savings, etc.)

@Phil89a commented on GitHub (Nov 10, 2025): Shame - I can see it is still in the tables and I had great use for it :-) But have worked around it now (I needed to group Accounts into different groups; e.g. Bank Accounts, Credit Cards, Savings, etc.)
Author
Owner

@MatissJanis commented on GitHub (Nov 10, 2025):

Weird that you still have it. Are you running an old version?

It was removed here https://github.com/actualbudget/actual/blob/matiss/docs-remove-account-type-reference/packages/loot-core/migrations/1686139660866_remove_account_type.sql#L6:L6

@MatissJanis commented on GitHub (Nov 10, 2025): Weird that you still have it. Are you running an old version? It was removed here https://github.com/actualbudget/actual/blob/matiss/docs-remove-account-type-reference/packages/loot-core/migrations/1686139660866_remove_account_type.sql#L6:L6
Author
Owner

@Phil89a commented on GitHub (Nov 10, 2025):

Latest version but my budget files are very old - just looked at the definition for my local file just synced from the server....

create table accounts
(
id TEXT
primary key,
account_id TEXT,
name TEXT,
balance_current INTEGER,
balance_available INTEGER,
balance_limit INTEGER,
mask TEXT,
official_name TEXT,
subtype TEXT,
bank TEXT,
offbudget INTEGER default 0,
closed INTEGER default 0,
tombstone INTEGER default 0,
sort_order REAL,
type TEXT,
account_sync_source TEXT,
last_sync text,
last_reconciled text
);

@Phil89a commented on GitHub (Nov 10, 2025): Latest version but my budget files are very old - just looked at the definition for my local file just synced from the server.... create table accounts ( id TEXT primary key, account_id TEXT, name TEXT, balance_current INTEGER, balance_available INTEGER, balance_limit INTEGER, mask TEXT, official_name TEXT, subtype TEXT, bank TEXT, offbudget INTEGER default 0, closed INTEGER default 0, tombstone INTEGER default 0, sort_order REAL, type TEXT, account_sync_source TEXT, last_sync text, last_reconciled text );
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#2601