[Bug]: Account linking process with Gocardless times out before completion #1899

Open
opened 2026-02-28 19:57:51 -06:00 by GiteaMirror · 15 comments
Owner

Originally created by @andregulbrandsen on GitHub (Feb 26, 2025).

Verified issue does not already exist?

  • I have searched and found no existing issue

What happened?

After having added secrets from Gocardless to Actual and trying to create a new linked account or link an existing account (both equally end with the same problem) a new tab opens for Gocardless. I go through the regular process and end up authenticating and authorizing the connection with my bank. After successfully authorizing the connection, the tab hangs for several minutes (normally ~15 minutes) before closing. After 10 minutes (ie. before the bank tab closes) the Actual tab reports that the process has timed out.

I have verified that Gocardless can connect to my bank as it works in the Gocardless developer portal. I reached out to Gocardless support that verified my connection and told me that authorization with the bank works fine and that they succesfully get data back from my linking request, but before that happens, Actual has timed out. Gocardless suggests increasing the time-out window to allow for a slow integration between Gocardless and the bank. I have tried setting a starting balance on the account in the hopes that that would reduce the number of transactions and thus reduce the required time frame for linking, but it makes no difference.

I have attempted to reach out to the Discord community to no avail.

How can we reproduce the issue?

Link an existing account or create a new linked account. Go through the process and if the loading from the bank back to Gocardless takes more than 10 minutes, Actual times out regardless of (later) success.

I've tried both with local docker hosting as well as Pikapods. I've tried with multiple browsers; Edge, Chrome, Firefox and Edge Android, same result.

Where are you hosting Actual?

Pikapods

What browsers are you seeing the problem on?

Microsoft Edge

Operating System

Windows 11

Originally created by @andregulbrandsen on GitHub (Feb 26, 2025). ### Verified issue does not already exist? - [x] I have searched and found no existing issue ### What happened? After having added secrets from Gocardless to Actual and trying to create a new linked account or link an existing account (both equally end with the same problem) a new tab opens for Gocardless. I go through the regular process and end up authenticating and authorizing the connection with my bank. After successfully authorizing the connection, the tab hangs for several minutes (normally ~15 minutes) before closing. After 10 minutes (ie. before the bank tab closes) the Actual tab reports that the process has timed out. I have verified that Gocardless can connect to my bank as it works in the Gocardless developer portal. I reached out to Gocardless support that verified my connection and told me that authorization with the bank works fine and that they succesfully get data back from my linking request, but before that happens, Actual has timed out. Gocardless suggests increasing the time-out window to allow for a slow integration between Gocardless and the bank. I have tried setting a starting balance on the account in the hopes that that would reduce the number of transactions and thus reduce the required time frame for linking, but it makes no difference. I have attempted to reach out to the Discord community to no avail. ### How can we reproduce the issue? Link an existing account or create a new linked account. Go through the process and if the loading from the bank back to Gocardless takes more than 10 minutes, Actual times out regardless of (later) success. I've tried both with local docker hosting as well as Pikapods. I've tried with multiple browsers; Edge, Chrome, Firefox and Edge Android, same result. ### Where are you hosting Actual? Pikapods ### What browsers are you seeing the problem on? Microsoft Edge ### Operating System Windows 11
GiteaMirror added the good first issuebank syncuser interfacebughelp wanted labels 2026-02-28 19:57:51 -06:00
Author
Owner

@Scandiravian commented on GitHub (Feb 27, 2025):

I'm experiencing the same issue with "bank sync". I have three linked accounts and each time I try to sync them, at most one of the accounts are getting synced.

@Scandiravian commented on GitHub (Feb 27, 2025): I'm experiencing the same issue with "bank sync". I have three linked accounts and each time I try to sync them, at most one of the accounts are getting synced.
Author
Owner

@PhilippCh commented on GitHub (Feb 27, 2025):

Same thing happens for me since today. Yesterday the initial linking was working fine, today - testing in a new Actual instance, it stays forever on the 'Waiting for GoCardless' screen with tons of POST requests to /account-data in the server logs.

Image

@PhilippCh commented on GitHub (Feb 27, 2025): Same thing happens for me since today. Yesterday the initial linking was working fine, today - testing in a new Actual instance, it stays forever on the 'Waiting for GoCardless' screen with tons of POST requests to /account-data in the server logs. ![Image](https://github.com/user-attachments/assets/1021423e-0116-4830-9962-17c26fe4b6b9)
Author
Owner

@bheart3k commented on GitHub (Mar 10, 2025):

Same thing for me. I am able to synchronize ing, but Ibercaja (spain bank) always ends up in time out.

@bheart3k commented on GitHub (Mar 10, 2025): Same thing for me. I am able to synchronize ing, but Ibercaja (spain bank) always ends up in time out.
Author
Owner

@andregulbrandsen commented on GitHub (Mar 11, 2025):

Issue persists in v25.3.1. Have not found a workaround.

@andregulbrandsen commented on GitHub (Mar 11, 2025): Issue persists in v25.3.1. Have not found a workaround.
Author
Owner

@MatissJanis commented on GitHub (Mar 28, 2025):

👋 Hey folks!

Have you reached out to gocardless about the issue? If they don't "ping" back Actual with success status then there is not much we can do on our end.

@MatissJanis commented on GitHub (Mar 28, 2025): 👋 Hey folks! Have you reached out to gocardless about the issue? If they don't "ping" back Actual with success status then there is not much we can do on our end.
Author
Owner

@andregulbrandsen commented on GitHub (Mar 28, 2025):

@MatissJanis thanks for reaching out on this issue. I have indeed been in touch with gocardless about this. From what I understood, they are returning a positive signal, but not until they get the load from the bank, by which time Actual has already timed out and is no longer listening for data from Gocardless. I'm more than happy to provide additional details, but would need some guidance on what you need and how to gather the information.

@andregulbrandsen commented on GitHub (Mar 28, 2025): @MatissJanis thanks for reaching out on this issue. I have indeed been in touch with gocardless about this. From what I understood, they are returning a positive signal, but not until they get the load from the bank, by which time Actual has already timed out and is no longer listening for data from Gocardless. I'm more than happy to provide additional details, but would need some guidance on what you need and how to gather the information.
Author
Owner

@MatissJanis commented on GitHub (Mar 28, 2025):

That's very helpful; thanks!

The timeout logic is here: 77949ad276/packages/loot-core/src/server/accounts/app.ts (L559)

It's currently set to 10 minutes - which is already quite long. I would find it surprising if raising it even more solved the issue.

@MatissJanis commented on GitHub (Mar 28, 2025): That's very helpful; thanks! The timeout logic is here: https://github.com/actualbudget/actual/blob/77949ad2760b08da25efceb18c99d9cb7de81fd7/packages/loot-core/src/server/accounts/app.ts#L559 It's currently set to 10 minutes - which is already quite long. I would find it surprising if raising it even more solved the issue.
Author
Owner

@andregulbrandsen commented on GitHub (Mar 28, 2025):

What would be the best way to verify if it does indeed help to increase the timeout for someone not well versed in the technical components involved in building the app from source?

@andregulbrandsen commented on GitHub (Mar 28, 2025): What would be the best way to verify if it does indeed help to increase the timeout for someone not well versed in the technical components involved in building the app from source?
Author
Owner

@MatissJanis commented on GitHub (Mar 28, 2025):

@andregulbrandsen you can use this demo link. I raised the timeout to 1h there.

Link it to your server and try running bank sync. Just remember to back-up your budget file before doing that in case something goes wrong.

Though - even if this does in fact solve the issue for you - I don't think we'd merge the change. 1h timeout is an absurdly long time.

@MatissJanis commented on GitHub (Mar 28, 2025): @andregulbrandsen you can use this [demo link](https://deploy-preview-4701.demo.actualbudget.org/). I raised the timeout to 1h there. Link it to your server and try running bank sync. Just remember to back-up your budget file before doing that in case something goes wrong. Though - even if this does in fact solve the issue for you - I don't think we'd merge the change. 1h timeout is an absurdly long time.
Author
Owner

@andregulbrandsen commented on GitHub (Mar 28, 2025):

@MatissJanis Just tested with the demo link, and would you know, after ~12 mins it linked the accounts just beautifully :D Perhaps merging with 1h timeout is excessive, but extending perhaps to 20 minutes would help with scenarios such as mine? Or even better some kind of mechanism for use configurable timeout for these corner cases?

@andregulbrandsen commented on GitHub (Mar 28, 2025): @MatissJanis Just tested with the demo link, and would you know, after ~12 mins it linked the accounts just beautifully :D Perhaps merging with 1h timeout is excessive, but extending perhaps to 20 minutes would help with scenarios such as mine? Or even better some kind of mechanism for use configurable timeout for these corner cases?
Author
Owner

@MatissJanis commented on GitHub (Mar 31, 2025):

20 minutes is quite excessive too. TBH I find the current timeout of 10 minutes too high as well. Nobody should be forced to wait so long for the accounts to link.

However, I get that GoCardless sometimes is exceptionally slow due to downstream bank constraints.. so I think a good solution here would be to keep (or possibly reduce) the default 10 minute timeout. And then have a better handling of the timeout. Instead of fully stopping the polling operation - continue doing it, but add another informational message to the UI. Something along the lines of:

Linking this account is taking longer than expected. You can keep this page open with hopes that eventually it will work, but it's quite likely that something has gone wrong downstream in Gocardless and thus linking this account at this time is not possible.
@MatissJanis commented on GitHub (Mar 31, 2025): 20 minutes is quite excessive too. TBH I find the current timeout of 10 minutes too high as well. Nobody should be forced to wait so long for the accounts to link. However, I get that GoCardless sometimes is exceptionally slow due to downstream bank constraints.. so I think a good solution here would be to keep (or possibly reduce) the default 10 minute timeout. And then have a better handling of the timeout. Instead of fully stopping the polling operation - continue doing it, but add another informational message to the UI. Something along the lines of: ``` Linking this account is taking longer than expected. You can keep this page open with hopes that eventually it will work, but it's quite likely that something has gone wrong downstream in Gocardless and thus linking this account at this time is not possible. ```
Author
Owner

@andregulbrandsen commented on GitHub (Mar 31, 2025):

I think that's a fair solution, as it will keep the user informed while still allowing for extremely slow cases such as mine. Perhaps add a note that the user should reach out to gocardless for support?

@andregulbrandsen commented on GitHub (Mar 31, 2025): I think that's a fair solution, as it will keep the user informed while still allowing for extremely slow cases such as mine. Perhaps add a note that the user should reach out to gocardless for support?
Author
Owner

@MatissJanis commented on GitHub (Mar 31, 2025):

Yea, I think that's a good idea. Either way - I'm not committing to doing this myself. We now have a proposed path forward and anyone in the community can pick this up an send a PR with the improvement.

@MatissJanis commented on GitHub (Mar 31, 2025): Yea, I think that's a good idea. Either way - I'm not committing to doing this myself. We now have a proposed path forward and anyone in the community can pick this up an send a PR with the improvement.
Author
Owner

@musicaldesigner commented on GitHub (Apr 28, 2025):

I am having the same issue with it not redirecting after logging into the bank, leading to a timeout in Actual, and I contacted GoCardless. Here was their reply. Perhaps this can help? I am not technical enough to know how to follow their instructions or to know whether or not this is the issue.

_Thank you for reaching out.
Please look into if you can add redirect immediate feature to :true when setting up the connection via Actual budget this helps to avoid the waiting time.
https://bankaccountdata.zendesk.com/hc/en-gb/articles/11529611180700-Immediate-end-user-redirect-from-bank-after-consent
https://developer.gocardless.com/bank-account-data/quick-start-guide

Integrations are mainly to connect current payment accounts. Card or Savings accounts could cause potential issues.

Based on the system I see that you have successfully linked the accounts to requisition_id 04a6463a-[MASKED]4f50 that was created yesterday._

@musicaldesigner commented on GitHub (Apr 28, 2025): I am having the same issue with it not redirecting after logging into the bank, leading to a timeout in Actual, and I contacted GoCardless. Here was their reply. Perhaps this can help? I am not technical enough to know how to follow their instructions or to know whether or not this is the issue. _Thank you for reaching out. Please look into if you can add redirect immediate feature to :true when setting up the connection via Actual budget this helps to avoid the waiting time. https://bankaccountdata.zendesk.com/hc/en-gb/articles/11529611180700-Immediate-end-user-redirect-from-bank-after-consent https://developer.gocardless.com/bank-account-data/quick-start-guide Integrations are mainly to connect current payment accounts. Card or Savings accounts could cause potential issues. Based on the system I see that you have successfully linked the accounts to requisition_id 04a6463a-[MASKED]4f50 that was created yesterday._
Author
Owner

@filled6881 commented on GitHub (Apr 30, 2025):

Had the same problem and used the demo link and could finally link my budget. I am using the german bank C24. Please consider, I don't know activating this for edge cases, maybe?

@filled6881 commented on GitHub (Apr 30, 2025): Had the same problem and used the [demo link](https://deploy-preview-4701.demo.actualbudget.org/) and could finally link my budget. I am using the german bank C24. Please consider, I don't know activating this for edge cases, maybe?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#1899