[Bug]: SimpleFin no longer indicates when there is an account sync issue #2479

Closed
opened 2026-02-28 20:14:58 -06:00 by GiteaMirror · 10 comments
Owner

Originally created by @sexyskinnybitch on GitHub (Sep 15, 2025).

Verified issue does not already exist?

  • I have searched and found no existing issue

What happened?

When syncing through SimpleFin, it used to show a red dot when there was an issue with syncing an account. Starting a few weeks ago (possibly longer), this is no longer the case. Actual now displays a Green dot, even though SimpleFin reports an error. In my case, I have a credit card (Target) that requires me to reauthorize after a few days.

The error in my case is: The answer or answers were not provided in time. Please try again.

The sync is working properly once I re-authenticate, the issue is the error is no longer being reported as a red dot.

How can we reproduce the issue?

Sync SimpleFin when there is a reported error on SimpleFin

Where are you hosting Actual?

Pikapods

What browsers are you seeing the problem on?

Firefox

Operating System

Windows 11

Originally created by @sexyskinnybitch on GitHub (Sep 15, 2025). ### Verified issue does not already exist? - [x] I have searched and found no existing issue ### What happened? When syncing through SimpleFin, it used to show a red dot when there was an issue with syncing an account. Starting a few weeks ago (possibly longer), this is no longer the case. Actual now displays a Green dot, even though SimpleFin reports an error. In my case, I have a credit card (Target) that requires me to reauthorize after a few days. The error in my case is: The answer or answers were not provided in time. Please try again. The sync is working properly once I re-authenticate, the issue is the error is no longer being reported as a red dot. ### How can we reproduce the issue? Sync SimpleFin when there is a reported error on SimpleFin ### Where are you hosting Actual? Pikapods ### What browsers are you seeing the problem on? Firefox ### Operating System Windows 11
GiteaMirror added the bank syncbug labels 2026-02-28 20:14:58 -06:00
Author
Owner

@matt-fidd commented on GitHub (Sep 16, 2025):

Sounds like it might be related to the shape of the data SimpleFIN is sending back. Are you able to send the response from the browser console in here please?

@matt-fidd commented on GitHub (Sep 16, 2025): Sounds like it might be related to the shape of the data SimpleFIN is sending back. Are you able to send the response from the browser console in here please?
Author
Owner

@deathblade666 commented on GitHub (Sep 16, 2025):

Sounds like it might be related to the shape of the data SimpleFIN is sending back. Are you able to send the response from the browser console in here please?

If it helps, on my end looks like the errors are included in a dedicated errors array, but not in the individual account listing. I assume that's probably the issue.

For example

{
   "errors": [
      "Connection to Digital Federal Credit Union may need attention. The answer or answers were not provided in time. Please try again."
   ],
@deathblade666 commented on GitHub (Sep 16, 2025): > Sounds like it might be related to the shape of the data SimpleFIN is sending back. Are you able to send the response from the browser console in here please? If it helps, on my end looks like the errors are included in a dedicated errors array, but not in the individual account listing. I assume that's probably the issue. For example ``` { "errors": [ "Connection to Digital Federal Credit Union may need attention. The answer or answers were not provided in time. Please try again." ], ```
Author
Owner

@sexyskinnybitch commented on GitHub (Sep 16, 2025):

Sounds like it might be related to the shape of the data SimpleFIN is sending back. Are you able to send the response from the browser console in here please?

I figured out how to see the response but can't figure out how to export the full detail, it only exports what is visible, and there are a bunch of collapsed entries.

@sexyskinnybitch commented on GitHub (Sep 16, 2025): > Sounds like it might be related to the shape of the data SimpleFIN is sending back. Are you able to send the response from the browser console in here please? I figured out how to see the response but can't figure out how to export the full detail, it only exports what is visible, and there are a bunch of collapsed entries.
Author
Owner

@HStep20 commented on GitHub (Sep 20, 2025):

Ive noticed this as well, where I will sync - all dots will be Green, but no transactions show up. Going in to SimpleFin, ReAuthing the account, and then triggering a Bank Sync again will resolve it.

@HStep20 commented on GitHub (Sep 20, 2025): Ive noticed this as well, where I will sync - all dots will be Green, but no transactions show up. Going in to SimpleFin, ReAuthing the account, and then triggering a Bank Sync again will resolve it.
Author
Owner

@jmealo commented on GitHub (Sep 29, 2025):

I think we need to reach out to Simplefin. According to the documentation there's just a flat errors array for all accounts. There doesn't appear to be any association between accounts and errors. We should do string similarity and try to make a good guess based on which accounts have an empty transactions array.

I think this is a defect/oversight in the API contract that should be corrected on their end.

Do we have a contact at Simplefin? I emailed support.

@jmealo commented on GitHub (Sep 29, 2025): I think we need to reach out to Simplefin. According to the documentation there's just a flat `errors` array for all accounts. There doesn't appear to be any association between accounts and `errors`. We should do string similarity and try to make a good guess based on which accounts have an empty `transactions` array. I think this is a defect/oversight in the API contract that should be corrected on their end. **Do we have a contact at Simplefin?** I emailed support.
Author
Owner

@jmealo commented on GitHub (Sep 30, 2025):

I think the workaround here would be to call the accounts endpoint once per-account passing a single account per call, at which point, we can assume any errors correspond to that account.

I had Claude Code attempt a fix (#5820). I'm not familiar with the code base yet. While attempting to test it (end-to-end, by hand, running locally on MacOS), I got an error about messages_binary table or something similar not existing.

Unfortunately, all of my accounts are in a good state right now, but, this change should be pretty easy to write tests for.

@jmealo commented on GitHub (Sep 30, 2025): I think the workaround here would be to call the accounts endpoint once per-account passing a single `account` per call, at which point, we can assume any `errors` correspond to that account. I had Claude Code attempt a fix (#5820). I'm not familiar with the code base yet. While attempting to test it (end-to-end, by hand, running locally on MacOS), I got an error about `messages_binary` table or something similar not existing. Unfortunately, all of my accounts are in a good state right now, but, this change should be pretty easy to write tests for.
Author
Owner

@sexyskinnybitch commented on GitHub (Sep 30, 2025):

I'm pretty sure it worked like this at one point, then they were combined into one call. It worked properly until Maybe a month ago, when it broke. The downside to individual calls is if you have many accounts, you run the risk of SimpleFin throttling the connection.

Dana
They/Them

Sep 29, 2025 22:22:38 Jeff Mealo @.***>:

 [Image]*jmealo* left a comment (actualbudget/actual#5732)[https://github.com/actualbudget/actual/issues/5732#issuecomment-3349698244]

I think the workaround here would be to call the accounts endpoint once per-account passing a single account per call, at which point, we can assume any errors correspond to that account.


Reply to this email directly, view it on GitHub[https://github.com/actualbudget/actual/issues/5732#issuecomment-3349698244], or unsubscribe[https://github.com/notifications/unsubscribe-auth/BPBEY26UJCOSF3MY5HGM5DT3VHSO3AVCNFSM6AAAAACGSMMFCKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTGNBZGY4TQMRUGQ].
You are receiving this because you authored the thread.
[Tracking image][https://github.com/notifications/beacon/BPBEY2Z4VYJ527PTGLTEGOT3VHSO3A5CNFSM6AAAAACGSMMFCKWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTWHVBLMI.gif]

@sexyskinnybitch commented on GitHub (Sep 30, 2025): I'm pretty sure it worked like this at one point, then they were combined into one call. It worked properly until Maybe a month ago, when it broke. The downside to individual calls is if you have many accounts, you run the risk of SimpleFin throttling the connection. Dana They/Them Sep 29, 2025 22:22:38 Jeff Mealo ***@***.***>: > > [Image]*jmealo* left a comment (actualbudget/actual#5732)[https://github.com/actualbudget/actual/issues/5732#issuecomment-3349698244] > > > I think the workaround here would be to call the accounts endpoint once per-account passing a single *account* per call, at which point, we can assume any *errors* correspond to that account. > > — > Reply to this email directly, view it on GitHub[https://github.com/actualbudget/actual/issues/5732#issuecomment-3349698244], or unsubscribe[https://github.com/notifications/unsubscribe-auth/BPBEY26UJCOSF3MY5HGM5DT3VHSO3AVCNFSM6AAAAACGSMMFCKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTGNBZGY4TQMRUGQ]. > You are receiving this because you authored the thread. > [Tracking image][https://github.com/notifications/beacon/BPBEY2Z4VYJ527PTGLTEGOT3VHSO3A5CNFSM6AAAAACGSMMFCKWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTWHVBLMI.gif] >
Author
Owner

@jmealo commented on GitHub (Sep 30, 2025):

SimpleFin got back to me. This isn't a breaking API change. If there are concerns around rate limiting, we need to be a good API consumer and implement something to respect/abide by whatever limits are in place. Hopefully they send down HTTP headers to make this easy. I asked for clarification on the issue (rate limiting).

For the longer term:
SimpleFin wants to make the errors more machine parseable, but, that's not going to happen until the end of the year at the earliest.

@jmealo commented on GitHub (Sep 30, 2025): SimpleFin got back to me. This isn't a breaking API change. If there are concerns around rate limiting, we need to be a good API consumer and implement something to respect/abide by whatever limits are in place. Hopefully they send down HTTP headers to make this easy. I asked for clarification on the issue (rate limiting). **For the longer term:** SimpleFin wants to make the errors more machine parseable, but, **that's not going to happen until the end of the year at the earliest.**
Author
Owner

@iffy commented on GitHub (Sep 30, 2025):

SimpleFIN Dev here:

The text of error messages changed a month ago from

Connection to {name} may need attention

to

Connection to {name} may need attention. {message}

Looks like the code is doing a string compare that has broken with the changed text:

e9f3925124/packages/sync-server/src/app-simplefin/app-simplefin.js (L165-L175)

While parsing the string is not recommended (it's meant to be displayed to the end user), I totally get why it's being done and we have plans to introduce parseable, structured errors by the end of the year. In the meantime, we won't make any more changes to the text of the message and a fix might be to change that compare to something like:

  const needsAttention = results.sferrors.find(
    e => e.startsWith(`Connection to ${account.org.name} may need attention`),
  );
@iffy commented on GitHub (Sep 30, 2025): SimpleFIN Dev here: The text of error messages changed a month ago from `Connection to {name} may need attention` to `Connection to {name} may need attention. {message}` Looks like the code is doing a string compare that has broken with the changed text: https://github.com/actualbudget/actual/blob/e9f3925124fb6052d6339f9a8988953b4ecf1b09/packages/sync-server/src/app-simplefin/app-simplefin.js#L165-L175 While parsing the string is not recommended (it's meant to be displayed to the end user), I totally get why it's being done and we have plans to introduce parseable, structured errors by the end of the year. In the meantime, we won't make any more changes to the text of the message and a fix might be to change that compare to something like: ``` const needsAttention = results.sferrors.find( e => e.startsWith(`Connection to ${account.org.name} may need attention`), ); ```
Author
Owner

@iffy commented on GitHub (Oct 23, 2025):

Here's where we're tracking the addition of structured errors to the SimpleFIN protocol: https://github.com/simplefin/simplefin.github.com/issues/29

(Sorry for commenting on a closed issue, but I figured it would be the best place)

@iffy commented on GitHub (Oct 23, 2025): Here's where we're tracking the addition of structured errors to the SimpleFIN protocol: https://github.com/simplefin/simplefin.github.com/issues/29 (Sorry for commenting on a closed issue, but I figured it would be the best place)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#2479