[Bug]: Bank link doesn't work #2494

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

Originally created by @a-lp on GitHub (Sep 22, 2025).

Verified issue does not already exist?

  • I have searched and found no existing issue

What happened?

Recently I had some issues in bank synchronization, so I unlinked from GoCardless and tried to link back the same bank. It's not working, from ActualServer webpage it returns error:

Cannot convert undefined or null to object

while in console it prints:

Failed linking gocardless account: Object { error_code: "INTERNAL_ERROR", error_type: "Cannot convert undefined or null to object" } app.ts:592:17

After I click the "close" button of the bank website, it get stucks trying to redirecting to my local instance, and after a while it returns the page "Not found".

I've also tried to connect my bank from GoCardless webpage and it works.


ActualBudget Server Version: 25.9.0

How can we reproduce the issue?

Link an account or try to create one using GoCardless integration.

Where are you hosting Actual?

Docker

What browsers are you seeing the problem on?

Firefox

Operating System

Linux

Originally created by @a-lp on GitHub (Sep 22, 2025). ### Verified issue does not already exist? - [x] I have searched and found no existing issue ### What happened? Recently I had some issues in bank synchronization, so I unlinked from GoCardless and tried to link back the same bank. It's not working, from ActualServer webpage it returns error: > Cannot convert undefined or null to object while in console it prints: > Failed linking gocardless account: Object { error_code: "INTERNAL_ERROR", error_type: "Cannot convert undefined or null to object" } app.ts:592:17 After I click the "close" button of the bank website, it get stucks trying to redirecting to my local instance, and after a while it returns the page "Not found". I've also tried to connect my bank from GoCardless webpage and it works. --- ActualBudget Server Version: **25.9.0** ### How can we reproduce the issue? Link an account or try to create one using GoCardless integration. ### Where are you hosting Actual? Docker ### What browsers are you seeing the problem on? Firefox ### Operating System Linux
GiteaMirror added the bank syncbug labels 2026-02-28 20:15:50 -06:00
Author
Owner

@bido1990 commented on GitHub (Sep 23, 2025):

I got the same error while trying to sync. Actual 25.9.0 deployed on docker on a Ubuntu server VM

@bido1990 commented on GitHub (Sep 23, 2025): I got the same error while trying to sync. Actual 25.9.0 deployed on docker on a Ubuntu server VM
Author
Owner

@MatissJanis commented on GitHub (Sep 23, 2025):

👋 Hi! Would you mind providing the server logs too? This is a crucial missing piece here.

@MatissJanis commented on GitHub (Sep 23, 2025): 👋 Hi! Would you mind providing the server logs too? This is a crucial missing piece here.
Author
Owner

@bido1990 commented on GitHub (Sep 23, 2025):

Hi, this is an extract from the most recent try to sync with gocardless

2025-09-23T20:11:38.472Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:11:42.135Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:11:45.792Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:11:49.471Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:11:53.098Z info: POST 200 /gocardless/get-accounts 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:43 2025-09-23T20:11:58.512Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:12:00.990Z info: GET 304 /account/validate 2025-09-23T20:12:01.134Z info: GET 304 /account/needs-bootstrap

i can post the full log from the start of the sync but this is the error that stops the process

@bido1990 commented on GitHub (Sep 23, 2025): Hi, this is an extract from the most recent try to sync with gocardless `2025-09-23T20:11:38.472Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:11:42.135Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:11:45.792Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:11:49.471Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:11:53.098Z info: POST 200 /gocardless/get-accounts 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:43 2025-09-23T20:11:58.512Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:12:00.990Z info: GET 304 /account/validate 2025-09-23T20:12:01.134Z info: GET 304 /account/needs-bootstrap` i can post the full log from the start of the sync but this is the error that stops the process
Author
Owner

@a-lp commented on GitHub (Sep 23, 2025):

2025-09-23T20:12:49.004Z info: POST 200 /sync/sync
2025-09-23T20:12:50.229Z info: POST 200 /gocardless/status
2025-09-23T20:12:53.196Z info: POST 200 /gocardless/get-banks
2025-09-23T20:12:58.282Z info: POST 200 /gocardless/create-web-token
2025-09-23T20:12:58.624Z info: POST 200 /sync/sync
2025-09-23T20:12:58.771Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:13:02.234Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:13:05.836Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:13:09.252Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:13:12.640Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:13:16.156Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:13:19.527Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:13:23.130Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:13:26.525Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:13:29.911Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:13:30.864Z info: POST 200 /sync/sync
2025-09-23T20:13:32.513Z info: POST 200 /sync/sync
2025-09-23T20:13:33.399Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:13:34.565Z info: POST 200 /sync/sync
2025-09-23T20:13:36.795Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:13:37.557Z info: POST 200 /sync/sync
2025-09-23T20:13:40.192Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:13:43.887Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:13:47.353Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:13:51.013Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:13:54.423Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:13:57.806Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:14:01.561Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:14:04.937Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:14:08.307Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:14:11.815Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:14:15.334Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:14:16.371Z info: GET 404 /gocardless/link?ref=f8829fab-87ba-4972-ab96-af4d025e48bc
Error: ENOENT: no such file or directory, stat '/app/src/app-gocardless/link.html'
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:43
2025-09-23T20:14:20.656Z info: POST 200 /gocardless/get-accounts
2025-09-23T20:14:21.332Z info: POST 200 /sync/sync
2025-09-23T20:14:24.908Z info: POST 200 /sync/sync
2025-09-23T20:14:57.495Z info: POST 200 /sync/sync
@a-lp commented on GitHub (Sep 23, 2025): ``` 2025-09-23T20:12:49.004Z info: POST 200 /sync/sync 2025-09-23T20:12:50.229Z info: POST 200 /gocardless/status 2025-09-23T20:12:53.196Z info: POST 200 /gocardless/get-banks 2025-09-23T20:12:58.282Z info: POST 200 /gocardless/create-web-token 2025-09-23T20:12:58.624Z info: POST 200 /sync/sync 2025-09-23T20:12:58.771Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:13:02.234Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:13:05.836Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:13:09.252Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:13:12.640Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:13:16.156Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:13:19.527Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:13:23.130Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:13:26.525Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:13:29.911Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:13:30.864Z info: POST 200 /sync/sync 2025-09-23T20:13:32.513Z info: POST 200 /sync/sync 2025-09-23T20:13:33.399Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:13:34.565Z info: POST 200 /sync/sync 2025-09-23T20:13:36.795Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:13:37.557Z info: POST 200 /sync/sync 2025-09-23T20:13:40.192Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:13:43.887Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:13:47.353Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:13:51.013Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:13:54.423Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:13:57.806Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:14:01.561Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:14:04.937Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:14:08.307Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:14:11.815Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:14:15.334Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:14:16.371Z info: GET 404 /gocardless/link?ref=f8829fab-87ba-4972-ab96-af4d025e48bc Error: ENOENT: no such file or directory, stat '/app/src/app-gocardless/link.html' 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:43 2025-09-23T20:14:20.656Z info: POST 200 /gocardless/get-accounts 2025-09-23T20:14:21.332Z info: POST 200 /sync/sync 2025-09-23T20:14:24.908Z info: POST 200 /sync/sync 2025-09-23T20:14:57.495Z info: POST 200 /sync/sync ```
Author
Owner

@MatissJanis commented on GitHub (Sep 23, 2025):

Thanks, this is very useful.

Looks like this has already been patched as part of https://github.com/actualbudget/actual/issues/5664

You can either upgrade to the "edge" tag or wait for the next release to go out.

@MatissJanis commented on GitHub (Sep 23, 2025): Thanks, this is very useful. Looks like this has already been patched as part of https://github.com/actualbudget/actual/issues/5664 You can either upgrade to the "edge" tag or wait for the next release to go out.
Author
Owner

@a-lp commented on GitHub (Sep 23, 2025):

it works, awesome!

@a-lp commented on GitHub (Sep 23, 2025): it works, awesome!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#2494