actualbudget/actual · error
results.error
Error message
results.error
What it means
If the 'pluggyai-accounts' response carries an 'error' field instead of an error_code, it is thrown directly as the error message. This handles generic/unstructured Pluggy.ai proxy failures.
Source
Thrown at packages/desktop-client/src/components/banksync/useBuiltInBankSyncProviders.ts:504
isEnableBankingSetupComplete,
onEnableBankingInit,
t,
upgradingAccountId,
]);
const onConnectPluggyAi = useCallback(async () => {
if (!pluggyAiStatus.configured) {
onPluggyAiInit();
return;
}
try {
const results = await send('pluggyai-accounts');
if (results.error_code) {
throw new Error(results.reason);
}
if ('error' in results) {
throw new Error(results.error);
}
const externalAccounts = (results.accounts as PluggyAiAccount[]).map(
oldAccount => ({
account_id: oldAccount.id,
name: `${oldAccount.name.trim()} - ${
oldAccount.type === 'BANK' ? oldAccount.taxNumber : oldAccount.owner
}`,
institution: oldAccount.name,
orgDomain: null,
orgId: oldAccount.id,
balance:
oldAccount.type === 'BANK'
? oldAccount.bankData.automaticallyInvestedBalance +
oldAccount.bankData.closingBalance
: oldAccount.balance,
}),
);View on GitHub (pinned to d4334cb6e6)
Solutions
- Read the thrown message (results.error) and the sync-server logs to identify the Pluggy.ai failure
- Re-authenticate Pluggy.ai credentials in provider settings
- Retry after confirming Pluggy.ai status (status.outage incidents)
- Check that the stored clientId/secret correspond to a valid Pluggy.ai account
Defensive patterns
Strategy: try-catch
Validate before calling
const res = await send('pluggyai-accounts');
if ('error' in res && res.error) {
throw new Error(res.error);
} Type guard
const hasErrorField = (r: object): r is { error: string } =>
'error' in r && typeof (r as { error?: unknown }).error === 'string'; Try / catch
try {
await loadPluggyAiAccounts();
} catch (e) {
logger.error('Pluggy.ai proxy error', e);
notify('Pluggy.ai account fetch failed; see server logs.');
} Prevention
- Re-authenticate Pluggy.ai when credentials change
- Confirm the stored credentials belong to an active Pluggy.ai account
- Capture sync-server logs to correlate the error string with the HTTP failure
When it happens
Trigger: The 'pluggyai-accounts' IPC returns { error: '...' } with no error_code — typically an exception message or HTTP error body captured by the sync server while calling Pluggy.ai.
Common situations: Pluggy.ai 5xx responses; server-side exception during account listing; credentials present but the Pluggy item/session cannot be created.
Related errors
- results.reason
- results.reason || results.error_code
- results.reason || results.error
- Budget file ID is required.
- Pluggy credentials are not configured
AI-assisted analysis of actualbudget/actual@d4334cb6e6 (2026-08-29).
Data as JSON: /api/errors/dfb986150b0d61db.
Report an issue: GitHub.