mirror of
https://github.com/actualbudget/actual.git
synced 2026-03-09 03:32:54 -05:00
[Bug]: Bank Sync via GoCardless fails at end of import #2483
Closed
opened 2026-02-28 20:15:13 -06:00 by GiteaMirror
·
19 comments
No Branch/Tag Specified
master
claude/fix-simplefin-ssrf-T31gX
claude/release-notes-validation-X7rvR
matiss/7155
claude/fix-simplefin-batch-sync-O8LcD
ai/custom-theme-dual-prefs
matiss/fix-6804
add-claude-github-actions-1772738270730
claude/analyze-internal-errors-4k6O2
react-query-rules
react-query-useSchedules
matiss/separate-lint-format
dependabot/npm_and_yarn/ajv-6.14.0
cursor/sync-performance-notification-9899
react-query-prefs
matiss/chunked-sync-and-progress-ux
v26.2.1
copilot/sub-pr-6880
fix-react-query-clear-on-close-budget
copilot/sub-pr-6140
feat/auto-note
feat/scoped-bank-sync
cursor/desktop-transactions-react-table-1d0c
fix-exhaustive-deps-App
copilot/fix-find-replace-bug
release/v26.2.0-pre
matiss/browser-tests
mobile-fix-drag-and-drop-across-groups
budget-table-v2
PayeeAutocomplete2
pglite
bugfix/plugins/fix-plugins-sw
feat/plugins/plugins-core-package
prerelease
matiss/unicode-minus-fix
cursor/fix-actual-github-issue-6206-gemini-3-pro-preview-9c37
TransactionFormPage
cursor/implement-mortgage-and-loan-account-type-78ca
tests-update-fill-with-pressSequentially
mobile/link-modal
deps/25.11
cursor/fix-update-vrt-apply-ci-job-dispatch-b324
sync-server-plugins
cursor/propose-patch-for-github-issue-5680-2a18
fix/compiler-preserve-inner-dollar-escapes
cursor/analyze-actual-budget-issue-and-propose-fix-5b70
coderabbitai/docstrings/0c070e5
cursor/add-wip-prefix-and-comment-to-prs-d78d
jfdoming/08-21-auto-focus-on-navigate-in-all-browsers
show-totals-on-mobile-budget-banners
allow-child-transactions-make-transfer
mobile-calculator-keyboard
payee-geolocation
enhance/restore_scroll_position
dm-fix-second-click-on-mobile-new-transaction-2
scrollToLocationBudget
alert-autofix-38
tsconfig-composite
mobile-fix-uncategorized-transactions-on-tracking-budgets
server-budget-handlers
fix-sql-injection-in-cleanup-template
non-chrome-draggable-workaround
mobile-budget-page-swipe-navigation
ts-db-all
stable
dark-theme-with-brand-colors
fix-mobile-delete-group
ts-db-select
UnderKoen/reconcile-context-menu
master-before-server-merge
v25.2.1
ts-runQuery
rename-redux-hooks
UnderKoen/3557-persist-state-in-history
remove-redux-CLOSE_BUDGET
fix-exhaustive-deps-errors-FinancesApp
redux-toolkit-createSlice-backup
accounts-function-component
ts-useSplitsExpanded
loot-core-server-package
useTransactios-in-TransactionEdit
react-aria-input
move-redux-to-desktop-client
QueryState-type
fix-themes-applied-late
mobile-vrts
revert-3295-spendingCardFix
react-aria-button-4
split-payee-on-mobile
twk3/pin-apis-crdt
notes-tag-autocomplete
ts-LoadBackup
dnd-kit
package-upgrades
v26.3.0
v26.2.1
v26.2.0
v26.1.0
v25.12.0
v25.11.0
v25.10.0
v25.9.0
v25.8.0
v25.7.1
v25.7.0
v25.6.1
v25.6.0
v25.5.0
v25.4.0
v25.3.1
v25.3.0
v25.2.1
v25.2.0
v25.1.0
v24.12.0
v24.11.0
v24.10.1
v24.10.0
v24.9.0
v24.8.0
v24.7.0
v24.6.0
v24.5.0
v24.4.0
v24.3.0
v24.2.0
v24.1.0
v23.12.0
v23.11.0
v23.10.0
v23.9.0
v23.8.1
v23.8.0
v23.7.2
v23.7.1
v23.7.0
v23.6.0
v23.5.0
v23.4.2
v23.4.1
v23.4.0
v23.3.2
v23.3.0
v23.2.9
v23.2.5
v23.1.12
v22.12.9
Labels
Clear labels
AI generated
API
bank sync
budgeting
bug
can’t replicate
dependencies
docker
documentation
electron
experimental feature
feature
feedback
goal templates
good first issue
help wanted
importers
maintenance
needs info
needs testing
needs triage
needs votes
openid
payees
pull-request
regression
reports
responsive
rules
schedules
server
✨ merged
split transactions
tech debt
theme
transaction import
transaction reconciliation
transactions
translations
upstream
user interface
✅ approved
wontfix
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/actual#2483
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @demares99 on GitHub (Sep 19, 2025).
Verified issue does not already exist?
What happened?
Hello Actual Community,
I'm no expert and I can't really understand what I'm talking about so gave all the info to ChatGPT in order to make a complete feedback. The result below.
Subject: Bank Sync via GoCardless fails at end of import (Windows desktop → self-hosted server on Home Assistant)
Hello Actual team,
I’m using Actual Desktop on Windows (Microsoft Store, latest) with a self-hosted Actual server running as a Home Assistant OS add-on on a Raspberry Pi 4. Both client and server are up to date (latest). There is no reverse proxy. My desktop and the server are sometimes on the same LAN and sometimes remote; the problem occurs in both cases.
What I’m trying to do
What happens
Important timeline
What I expect
Steps to reproduce
Environment
Relevant log excerpts (sensitive info redacted)
Bank Sync starts and GoCardless returns data (institution and account identifiers redacted):
Server Log: Bank Sync operation for account: [redacted account name/number]andServer Log: Pulling transactions from GoCardlesswith aResponseobject containing manybookeditems (institutionId:[redacted]).Immediately afterward, the app reports a failure to sync the account:
Server Log: [Exception] { message: 'Failed syncing account “[redacted account name/number]”.' }During/after the same run, the desktop’s fetch layer reports network failures and a connect timeout while syncing:
TypeError: fetch failed … [cause]: ConnectTimeoutError (UND_ERR_CONNECT_TIMEOUT)andPostError: network-failureduring_fullSync.At other moments in the same session, console logs show intermittent DNS resolution failures while contacting my server host (domain redacted):
Error: getaddrinfo EAI_AGAIN actual.[redacted].duckdns.org(seen duringgetUser,postBinary, etc.).I also see a UI/runtime error during reconciliation (including after transactions were listed):
Internal error: TypeError: Cannot read properties of undefined (reading 'offbudget')followed by the same “Failed syncing account” message.Frequency
Can I provide anything else?
I can share the full console log (with sensitive details redacted) and run any additional diagnostics you recommend from either the desktop app or the self-hosted server.
Thanks for your help!
How can we reproduce the issue?
Steps to reproduce
Where are you hosting Actual?
Other
What browsers are you seeing the problem on?
Microsoft Edge
Operating System
Windows 11
@youngcw commented on GitHub (Sep 19, 2025):
Its best not to use the desktop app if you have a hosted server.
Does this still happen if you sync while using Actual in a browser?
@demares99 commented on GitHub (Sep 21, 2025):
Yes, i tried in a browser on the same computer, on my phone and on another computer (still using edge): always an error. The last synced transaction is on 15/07 and I can't sync anything after.
@youngcw commented on GitHub (Sep 21, 2025):
If you sync individual accounts, do they all do this or just a few?
@demares99 commented on GitHub (Sep 21, 2025):
I only have one account sync :)
Le dim. 21 sept. 2025, 17:08, youngcw @.***> a écrit :
@mauroartizzu commented on GitHub (Sep 22, 2025):
@demares99 Check https://bankaccountdata.gocardless.com/companies/usage/ your actual quota. Enable debug and see if it is returning 429 you might have reached the quota.
@demares99 commented on GitHub (Sep 23, 2025):
I doubt the problem comes from Gocardless. I can read in the log of Actual (in the HomeAssistant add-on) that the transactions arrive in Actual (see picture 2). They are not processed by Actual. I couldn't find how to enable debug, but I screenshot the usage (picture 1). I didn't sync since 1 week (17-09-2025, see picture2) and I usually sync once or twice per day at most.
As I mentioned before, I tried to get help from Chat-GPT and in the previous months he gave me a lot of different (false) reasons to explain this behaviour. One of this reason was that maybe a transaction around 15/07/2025 contained a special symbol that made the import crashed into Actual. It's not impossible since I speak french and the transactions names or details could contains é,è,ê,à,â, etc. I have no idea if it's possible or how to check it.
I also forgot to mention that not so long before the bug (but no direcly before either), I tried to switch between Tracking and Enveloppe Budgeting to see what suited me most. I did Enveloppe -> Tracking -> Enveloppe -> Tracking and stayed in tracking since. Once again, I have no idea if it's linked but it's worth mentionning it.
@giacomofabbri commented on GitHub (Sep 30, 2025):
Hello, I'm getting same error on 2 banks of 3 that I setup via GoCardless and on docker logs I got this error
Error /gocardless/get-accounts TypeError: Cannot convert undefined or null to object at Function.keys (<anonymous>) at Object.getDetailedAccount (file:///app/src/app-gocardless/services/gocardless-service.js:345:23) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async file:///app/src/app-gocardless/services/gocardless-service.js:119:29 at async Promise.all (index 0) at async Object.getRequisitionWithAccounts (file:///app/src/app-gocardless/services/gocardless-service.js:118:34) at async file:///app/src/app-gocardless/app-gocardless.js:44:43I'm from Italy if that helps.
@weiran commented on GitHub (Oct 1, 2025):
I'm also getting this error in app my accounts too, since mid September. I'm in the UK.
@mullermn commented on GitHub (Oct 8, 2025):
I am also seeing this error this week. Syncing via GoCardless in the UK, seeing it on Amex, Santander and HSBC.
I tried removing and re-adding HSBC and the linking process works fine, but the sync still fails afterwards.
In the console:
I'm using PikaPods so I'm not sure if I can get anything more detailed than this?
@mullermn commented on GitHub (Oct 9, 2025):
OK, so today I tried the HSBC sync (without any further corrective action since yesterday) and it's worked fine. I then tried Santander and I got an error, but a different one:
Doing the reauthorisation journey worked fine, and these Santander accounts are now syncing again.
So, I think my issue (which may or may not be the exact same one as the OP - I can't tell) is more to do with something going wrong when the credentials expire.
To be clear I did NOT receive any prompt or indication that credentials were out of date when it stopped working (so this isn't a case of me being a numpty and not noticing the auth had expired!), and reauthorising did not fix it until 24h later. Is it possible that credential expiry is not being detected correctly and the sync process is upsetting the GoCardless service with bad requests?
@weiran commented on GitHub (Oct 10, 2025):
Interesting, relinking accounts now seems to fix the error - when it didn't before. I haven't changed my Actual instance so maybe it was something on GoCardless' end.
@francescovigni commented on GitHub (Oct 13, 2025):
Hello all!
I'm also from Italy and I'm using 2 banks on actual.
My instance is running on my Synology NAS and I'm accessing it via a cloudflare tunnel. The setup works well but in these days I am also experiencing an issue when pulling new transactions. The console on the browser shows
Failed linking gocardless account: Object error_code: "INTERNAL_ERROR" error_type: "Cannot convert undefined or null to object"The container logs report
Error /gocardless/get-accounts TypeError: Cannot convert undefined or null to object at Function.keys (<anonymous>) at Object.getDetailedAccount (file:///app/src/app-gocardless/services/gocardless-service.js:345:23) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async file:///app/src/app-gocardless/services/gocardless-service.js:119:29 at async Promise.all (index 0) at async Object.getRequisitionWithAccounts (file:///app/src/app-gocardless/services/gocardless-service.js:118:34) at async file:///app/src/app-gocardless/app-gocardless.js:44:43I guess my credentials expire but I am not able to set up new ones.
@francescovigni commented on GitHub (Oct 13, 2025):
You mean you had to
unlinkyour account andlinkit again and it worked?@giacomofabbri commented on GitHub (Oct 13, 2025):
I was able to fix it too doing the unlink and then link again! Both my account now works perfectly
@demares99 commented on GitHub (Oct 14, 2025):
Unlinking and relinking didn't change anything for me, unfortunatly.
@francescovigni commented on GitHub (Oct 29, 2025):
For the italian banks the problem was solved in issues https://github.com/actualbudget/actual/pull/5706 and 5741 check the release notes
Just update your instance to the 25.10.0 and try again to link your account. It should work now.
I believe this issue can be closed.
@demares99 commented on GitHub (Oct 30, 2025):
You gave me hope, but it actually didn't solve it for me. Version 25.10.0, unlinked and relinked my account.
@JuliaF1988 commented on GitHub (Oct 30, 2025):
Same problem here (since Oct 27 2025).
Everything worked fine before that date.
I'm running Actual Server in Docker (actualbudget/actual:latest), self-hosted behind a reverse proxy. The bank connection is via GoCardless (Germany, PSD2).
According to the container logs, the GoCardless integration does fetch the latest account data — example excerpt:
POST 200 /gocardless/transactions
top10Transactions: '[{"transactionId":"20251030-12345678910-1-0","bookingDate":"2025-10-30","transactionAmount":{"amount":"-123.45","currency":"EUR"}, ... "booked":true}]'
However, these transactions never appear in the Actual UI.
After reset-user-file and re-linking the accounts, the sync still succeeds in the backend but no new transactions are visible or offered for import.
Restarting the container, clearing cache, and re-linking GoCardless do not change the behavior.
@matt-fidd commented on GitHub (Oct 30, 2025):
Hey @demares99, sorry that you're still seeing this issue. The root cause appears to be the data provided by GoCardless, but I've opened a PR that will help us to debug it together.
Could you follow the below steps and we can see if there's any more information please?
If so, there will be some transaction information and a list of accounts logged out. Please could you provide that information, or take a look at it yourself, and we should be able to get further.
If you don't feel comfortable sharing on this thread, then feel free to PM me on Discord @matt-fidd, and you can redact any information not related to the account if you'd like.