Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feedback]: SimpleFIN Sync #2272

Open
zachwhelchel opened this issue Jan 22, 2024 · 125 comments
Open

[Feedback]: SimpleFIN Sync #2272

zachwhelchel opened this issue Jan 22, 2024 · 125 comments
Labels
bank sync Related to automatic bank syncing experimental feature Related to an experimental feature feedback Single feedback thread for bug reports on a new feature

Comments

@zachwhelchel
Copy link
Sponsor Contributor

zachwhelchel commented Jan 22, 2024

This issue is to track thoughts/bugs/concerns/ideas around the new SimpleFIN syncing which is an experimental feature.

@zachwhelchel zachwhelchel added the bug Something isn't working label Jan 22, 2024
@zachwhelchel zachwhelchel changed the title [Bug]: [Feedback]: SimpleFIN Sync Jan 22, 2024
@MatissJanis MatissJanis added experimental feature Related to an experimental feature feedback Single feedback thread for bug reports on a new feature bank sync Related to automatic bank syncing and removed bug Something isn't working experimental feature Related to an experimental feature labels Jan 22, 2024
@MatissJanis MatissJanis pinned this issue Jan 22, 2024
@JMLegere
Copy link

How do I use this?

@youngcw
Copy link
Contributor

youngcw commented Jan 23, 2024

@JMLegere Currently you have to be using the edge release, then enable the experimental feature for it

@sethgillett
Copy link
Sponsor Contributor

sethgillett commented Jan 26, 2024

Any concerns about how actively developed their bridge tool is? Their last blog post is from 2016 and their terms of use haven't been updated since 2020, and it doesn't seem like any banks have implemented the protocol themselves.

Edit: It looks like their privacy policy was updated last October.

@youngcw
Copy link
Contributor

youngcw commented Jan 26, 2024

@sethgillett SimpleFIN uses MX in the background and its primary role is to make bank sync accessable to individuals instead of having to use a large company service. So there likely isn't much that needs changed. From what I've heard the guy that runs it is very responsive and actively keeping it going.

@yoyotogblo
Copy link
Contributor

He's very responsive. Almost always responds within a few hours of issues being raised and escalates issues quickly also. I won't be concerned about it being active.

@joel-jeremy
Copy link
Contributor

We should add a new feature to "force match" an existing transaction to a newly imported one. This should basically just assign the imported_id of the new imported transaction to an existing transaction. This way when the next sync runs, the existing transaction will be matched and will not be duplicated.

@yoyotogblo
Copy link
Contributor

We should add a new feature to "force match" an existing transaction to a newly imported one. This should basically just assign the imported_id of the new imported transaction to an existing transaction. This way when the next sync runs, the existing transaction will be matched and will not be duplicated.

That's how it already works. If the imported_id exists, it auto-matches so doesn't dupe. If it doesn't exist, it uses fuzzy matching
(looks at transactions 4 days prior and 1 day after the imported transactions) and if it finds one, it assigns that existing the transaction the imported_id.

@joel-jeremy
Copy link
Contributor

I'm aware of that, and what I meant is for users to be able to do what the fuzzy matching is doing by manually selecting which transactions to "match". Because the fuzzy matching will not be able to catch all the cases - in my case, the bank seems to use the cleared date as the transaction date instead of the date the purchase was made and that varies between 1 day or sometimes a week.

Another thing I noticed is that the imported transactions doesn't seem to match split transactions.

@cmccambridge
Copy link

The fuzzy logic (-4 to +1 days) makes sense when syncing of all accounts is happening on an on-going daily basis, and we hope that most transactions appear in chronological order across acounts. But, it's been a problem tonight as I'm trying out new SimpleFIN links to existing Actual accounts...

Is there a reason to keep the match range asymmetric? Could it be updated to -4 to +4, for example? Else definitely the "force match" concept that @joel-jeremy mentioned would resolve my case as well... I had gone looking for that exact feature at first, but couldn't find it.

Here's the problematic scenario for my data:

  1. Local checking account existed. Local credit card account existed.
  2. On a past date (typically my problem is near a weekend when credit card and bank disagree on effective dates), a payment was made from my checking account to the credit card.
  3. Previously, using QXF imports, the Checking account recorded the transfer on, for example, Nov 6, 2023 (a Monday). The credit card recorded it on Nov 3, 2023 (a Friday).
  4. I dealt with the duplicate/non-matched transactions by deleting one or the other, depending which account I happened to import via QXF first to trigger the transfer Rules.
  5. In future updates, I avoided the problem by using "last 30 days" type QXF files to dodge the duplicates
  6. When I linked the checking account to SimpleFIN, all was well: Fuzzy match worked and the payment on Nov 6 looked good from the checking account side.
  7. When I linked the credit card to SimpleFIN, it imported the Nov 3 payment again, and the fuzzy match failed, presumably since the real transfer on Nov 6 was too far into the future.
  8. I deleted the new Nov 3 payment manually, synced again, and the SimpleFIN sync recreated it ☹️.

I think the better workaround as I identify these date collisions is for me to go change the dates of the transfer to try and favor the earlier date?

But, the manual work to figure out which account I need to forcibly tweak is overhead that would be great to avoid if possible 😄

@yoyotogblo
Copy link
Contributor

I'm aware of that, and what I meant is for users to be able to do what the fuzzy matching is doing by manually selecting which transactions to "match". Because the fuzzy matching will not be able to catch all the cases - in my case, the bank seems to use the cleared date as the transaction date instead of the date the purchase was made and that varies between 1 day or sometimes a week.

Another thing I noticed is that the imported transactions doesn't seem to match split transactions.

Ah yeah, manually matching...

I wrote a lot of details about the ideal behavior in the issue below... Fully agree that we need a way to manually match.
#669

Also, on the 1 day vs a week time difference, I have a PR.to change the fuzzy matching logic to 7 days prior and 7 days after. I use that in my instance and it works much better.
#2300

@yoyotogblo
Copy link
Contributor

yoyotogblo commented Feb 1, 2024

The fuzzy logic (-4 to +1 days) makes sense when syncing of all accounts is happening on an on-going daily basis, and we hope that most transactions appear in chronological order across acounts. But, it's been a problem tonight as I'm trying out new SimpleFIN links to existing Actual accounts...

Is there a reason to keep the match range asymmetric? Could it be updated to -4 to +4, for example? Else definitely the "force match" concept that @joel-jeremy mentioned would resolve my case as well... I had gone looking for that exact feature at first, but couldn't find it.

Here's the problematic scenario for my data:

  1. Local checking account existed. Local credit card account existed.
  2. On a past date (typically my problem is near a weekend when credit card and bank disagree on effective dates), a payment was made from my checking account to the credit card.
  3. Previously, using QXF imports, the Checking account recorded the transfer on, for example, Nov 6, 2023 (a Monday). The credit card recorded it on Nov 3, 2023 (a Friday).
  4. I dealt with the duplicate/non-matched transactions by deleting one or the other, depending which account I happened to import via QXF first to trigger the transfer Rules.
  5. In future updates, I avoided the problem by using "last 30 days" type QXF files to dodge the duplicates
  6. When I linked the checking account to SimpleFIN, all was well: Fuzzy match worked and the payment on Nov 6 looked good from the checking account side.
  7. When I linked the credit card to SimpleFIN, it imported the Nov 3 payment again, and the fuzzy match failed, presumably since the real transfer on Nov 6 was too far into the future.
  8. I deleted the new Nov 3 payment manually, synced again, and the SimpleFIN sync recreated it ☹️.

I think the better workaround as I identify these date collisions is for me to go change the dates of the transfer to try and favor the earlier date?

But, the manual work to figure out which account I need to forcibly tweak is overhead that would be great to avoid if possible 😄

I have a PR to make it symmetrical and to use 7 days in both cases...
#2300

I had the same issues as you with the Simplefin sync and this has solved it. BTW, currently, the Simplefin sync looks back 90 days. Most accounts don't provide that much history so you won't see as many breaks. But for the ones that do, it could break over a 90 day range everytime you sync.

@joel-jeremy
Copy link
Contributor

Another observation: This is not SimpleFIN specific but when you modify an imported transaction, it will still match the next time you sync even though the fields are no longer the same. I think we should treat imported transactions like we do reconciled transactions where a warning pops up when editing an imported transaction.

@cmccambridge
Copy link

This one might be SimpleFIN specific, and might also not be fixable depending what data we have to work from, but I'll ask :)

Is there any additional metadata we can present on the Link UX flow to help clarify what's what in the available SimpleFIN connections? In my connections, some appear to use the "friendly name" i set through the bank UI, or a common name for the card, but others are very generic and I could only figure out which account it was through process of elimination. On one I even had to guess, realize it was wrong, delete the imported transactions, and try again :)

Is there any connection name we could show? Or a partial account number to disambiguate multiple similar-named accounts?
image

@MatissJanis
Copy link
Member

👋 I tried setting up simplefin to run some tests. Here are some issues I encountered:

  • we definitely need a docs page; similar to the one we have for gocardless
  • there is no way to set a new token (initially I used an invalid token; this causes the /accounts request to load forever without any way to replace this invalid token with something else); -- maybe there actually is a way to update the token.. but I'm not able to get to it
  • could we add a "use test credentials" button that uses the test secret (from here) if folks are running a dev server? Would make testing it much quicker
  • it seems that the notes field is always the same as payee field: is that expected (I'm using the above test credentials)?

Everything else seems to be working good so far. Great job!

@swelborn
Copy link

swelborn commented Feb 1, 2024

Hello! It may be good to have a marker to designate transactions that were imported through syncing with simplefin. I may be missing this if it is there. Ideally, one could toggle that marker off/on depending on if they wanted it there or not.

all around awesome and seamless. Need to do a bit of rule updating, but other than that all of my accounts are synced up. great work.

@joel-jeremy
Copy link
Contributor

joel-jeremy commented Feb 1, 2024

It may be good to have a marker to designate transactions that were imported through syncing with simplefin

This is a good idea. We mark linked/imported accounts in the UI and we should do the same with imported transactions (gocardless/simplefin) IMO. This + warn users if an imported transaction is being modified. If modified, it should then be converted to a regular transaction (we remove it's imported_id).

@yoyotogblo
Copy link
Contributor

Another observation: This is not SimpleFIN specific but when you modify an imported transaction, it will still match the next time you sync even though the fields are no longer the same. I think we should treat imported transactions like we do reconciled transactions where a warning pops up when editing an imported transaction.

This is how I'd expect it to work though. It matches the imported id and since it recognizes that you've already imported that transaction and edited it, it shouldn't try to change it and should just match it. Not sure of the benefit of a warning pop up in this instance.

@yoyotogblo
Copy link
Contributor

This one might be SimpleFIN specific, and might also not be fixable depending what data we have to work from, but I'll ask :)

Is there any additional metadata we can present on the Link UX flow to help clarify what's what in the available SimpleFIN connections? In my connections, some appear to use the "friendly name" i set through the bank UI, or a common name for the card, but others are very generic and I could only figure out which account it was through process of elimination. On one I even had to guess, realize it was wrong, delete the imported transactions, and try again :)

Is there any connection name we could show? Or a partial account number to disambiguate multiple similar-named accounts? image

There's definitely more info that can be shown... If you use the external test script that Dup created, that has more info. I ran into the same thing and played the same guessing game and deleting transactions. Good thing is you only have to do it one time :)!

@yoyotogblo
Copy link
Contributor

It may be good to have a marker to designate transactions that were imported through syncing with simplefin

This is a good idea. We mark linked/imported accounts in the UI and we should do the same with imported transactions (gocardless/simplefin) IMO. This + warn users if an imported transaction is being modified. If modified, it should then be converted to a regular transaction (we remove it's imported_id).

Definitely don't think we should ever be removing the imported_id. Based off your proposal, if it imports a transaction and I need to change the payee, then that's now modified. Remove the imported_id and the transaction gets duped. Not sure I see any benefit to what you're proposing.

@swelborn
Copy link

swelborn commented Feb 2, 2024

In terms of the marker, I was only thinking of a label like your green dots next to the linked accounts. I don't think this would involve removing a uid as suggested above, but adding a tag... but I'm not familiar with source so I'm not sure how difficult this would be.

I am checking actual from mobile now and there is no sync button. I understand that the mobile version is not as fully featured as desktop, but a sync button would be good for mobile.

@joel-jeremy
Copy link
Contributor

This is how I'd expect it to work though. It matches the imported id and since it recognizes that you've already imported that transaction and edited it, it shouldn't try to change it and should just match it. Not sure of the benefit of a warning pop up in this instance.

I am referring to user-made edits not edits made by the importer if that's what your thinking.

Definitely don't think we should ever be removing the imported_id. Based off your proposal, if it imports a transaction and I need to change the payee, then that's now modified. Remove the imported_id and the transaction gets duped. Not sure I see any benefit to what you're proposing.

The warning popup can be limited to amount user edits or possibly even the date. It doesn't make sense to have an imported transaction's amount be different from the amount that came from the bank. It can also introduce confusion when users need to reconcile old transactions.

@chriskol
Copy link

I probably should have said more in my original post, but this "issue" I have made me wonder two things in terms of actual functionality of the feature:

1. Current documentation does say that SimpleFIN only offers "at most 90 days of data," so I presume that after right about now I should stop seeing this transaction. If I don't then that would be interesting. Would it be too niche of a feature to be able to set a cutoff date for synching?

2. I tried leaving the transaction but setting amount to $0. It reimported it as another entry anyway. Wondering about the matching criteria for imported transactions, because obviously changing the amount made it different. If the match fingerprinting could have been different, maybe I could have done what I did?

As someone who just had a SimpleFin integration get added for an institution he was manually tracking, I'd love this. I just picked February as a start date and used reconciliations to start from there and accept everything prior as a wash. Now I have transactions from Jan and Dec popping up and it's messing with a lot of the 'clean slate' I had established.

I guess it's not the biggest thing and I can live with it for another 2 months until the transactions drop off and everything gets back to 'normal' but it would be a great quality of life enhancement to just be able to say "I only care about transactions after this date" when syncing (especially for the first time).

@Fiercefish1
Copy link

Fiercefish1 commented Mar 26, 2024

The sync is working great, nice job!

Feature request: Allow user to review and modify data transform template for each account before starting sync. e.g. Pop up the import wizard (modified for data received from API) on first pull to allow for custom mapping.

*Could be considered a bug, as it's not accurately parsing original payee names from source as it is now, which breaks existing rules.

Currently, location information (city and state) is being appended to the payee name for all my CC transactions, as there is no Actual field for location. The existing import wizard solves this if I import manually today.

@advaitkunte
Copy link

advaitkunte commented Mar 27, 2024

My bank is being annoying and returning the same names for multiple accounts. Would it be possible to add balance in brackets in the "Link Accounts" model pane, it would make it easier to identify and map the simpleFIN accounts to actual account

@RandomSwiss7983242
Copy link

RandomSwiss7983242 commented Mar 29, 2024

EDIT: Created a separate ISSUE for this

I think I found a bug relating to the simplefin authentication. I had an unrelated issue and I ended up deleting my simplefin API key and creating a new one. After a relogin to actualbudget I went to go add a new account with simplefin. The GUI shows an error Something internally went wrong. You may want to restart the app if anything looks wrong. Please report this as a new issue on Github. and the docker logs show the below.

58fac0e8600f SyntaxError: Unexpected token < in JSON at position 0
58fac0e8600f     at JSON.parse (<anonymous>)
58fac0e8600f     at IncomingMessage.<anonymous> (file:///app/src/app-simplefin/app-simplefin.js:237:24)
58fac0e8600f     at IncomingMessage.emit (node:events:529:35)
58fac0e8600f     at endReadableNT (node:internal/streams/readable:1400:12)
58fac0e8600f     at process.processTicksAndRejections (node:internal/process/task_queues:82:21)

From the GUI, the loading icon just spins, but I'm not ever able to update/fix my simplefin API key.

Is there anyway to update/fix the simplefin API key manually in a sqlite backup?

@faultoverload
Copy link

faultoverload commented Apr 3, 2024

[Bug]
Steps to reproduce:

  1. create new local account
  2. link account with simplefin that has a balance
  3. delete the account before the simplefin sync process is able to grab the transactions for the account
  4. look in your all accounts ledger, you should see an entry for a starting balance of X with no account name

This bug will cause the overall budget number to grow or shrink by the value returned but it will not show up in your available budget menu. When you goto all accounts you can delete the entry and it will be fixed.

https://media.discordapp.net/attachments/940290142579605514/1224911450833686548/image.png?ex=661f36af&is=660cc1af&hm=67b6684df7f880dcd6cc210985100b0441484e51e0f432c50b6aeb0b175d5ea9&

@ctrlaltd1337ed
Copy link

Bug: Transactions are being pulled from before my set Starting Balances

Steps to reproduce:

  1. Create a local account and set a starting balance
  2. Link the account to an account brought in through SimpleFIN
  3. Transactions from before my starting balance are pulled in

@psybers
Copy link
Contributor

psybers commented Apr 3, 2024

Bug: Transactions are being pulled from before my set Starting Balances

Steps to reproduce:

  1. Create a local account and set a starting balance
  2. Link the account to an account brought in through SimpleFIN
  3. Transactions from before my starting balance are pulled in

This doesn't seem like a bug to me. It should pull whatever the sync provides.

What is a bug, in my opinion, is when you delete something previously pulled and it adds it back in on the next pull. If this issue was fixed, it would also fix your issue as you could just delete any older transactions you do not want.

@MotafokaBR
Copy link

As a feed back, during my tests I noticed a couple of things that bothered me:

  1. When linking an account, it would be great to have the bank name as a prefix for the account name

  2. It would be nice to have the option to clear SimpleFIN credentials using the UI! (I've used the test connection from their demo and had to manually delete the secrets directly from the SQLlite database.

@armanckeser
Copy link

Maybe this is me, but I couldn't find a way to import from SimpleFIN to Off Budget accounts. Would be nice to be able to do that.

@AevumDecessus
Copy link

Maybe this is me, but I couldn't find a way to import from SimpleFIN to Off Budget accounts. Would be nice to be able to do that.

Should be in the 3 dot menu on the right, this is an off-budget account, when you click link it should give you a list of SimpleFIN accounts that are not already linked to other accounts in your budget
image

@armanckeser
Copy link

armanckeser commented Apr 22, 2024

Maybe this is me, but I couldn't find a way to import from SimpleFIN to Off Budget accounts. Would be nice to be able to do that.

Should be in the 3 dot menu on the right, this is an off-budget account, when you click link it should give you a list of SimpleFIN accounts that are not already linked to other accounts in your budget

Ah gotcha! First create the account and then link. So, not a high priority ask, but maybe adding a Create a new off-budget account selection to the linking menu (next to Create a new account) might make sense. Thanks for the reply!

@psybers
Copy link
Contributor

psybers commented Apr 22, 2024

I would say this is not a SimpleFin-specific issue, but the local account creation dialog:

image

has a check box for "Off-budget". Probably this dialog:

image

should do something similar. A simple solution would be two buttons, one for linking on-budget and one for linking off-budget.

I don't have GoCardless but I assume the dialog is similar there.

@joelspiers15
Copy link

Not sure if this is just simplefin or the way sync is intended to be used, but I was hoping my partner could use simplefin on their own budget separately from mine. When they went to add a linked account from their budget it comes up with my simplefin data. Clearly this means the access token is shared across budgets.

So I'm wondering, is there a way to separate the simplefin accounts by budget, or is this just not how sync is intended to be used?

@Teprifer
Copy link

Not sure if this is just simplefin or the way sync is intended to be used, but I was hoping my partner could use simplefin on their own budget separately from mine. When they went to add a linked account from their budget it comes up with my simplefin data. Clearly this means the access token is shared across budgets.

So I'm wondering, is there a way to separate the simplefin accounts by budget, or is this just not how sync is intended to be used?

Are you using HTTPS for accessing actual budget? If not then that is likely the issue and what you need to fix.

@duplaja
Copy link

duplaja commented Apr 26, 2024

Not sure if this is just simplefin or the way sync is intended to be used, but I was hoping my partner could use simplefin on their own budget separately from mine. When they went to add a linked account from their budget it comes up with my simplefin data. Clearly this means the access token is shared across budgets.

So I'm wondering, is there a way to separate the simplefin accounts by budget, or is this just not how sync is intended to be used?

SimpleFIN Sync is set up on a per-server instance. You'd need a separate instance, if you wanted separate SimpleFIN links. Otherwise, you could set up a joint SimpleFIN account that links to both of your accounts, but that's more of a personal preferences approach.

@joelspiers15
Copy link

Are you using HTTPS for accessing actual budget?

I am using HTTPS so no issue there.

SimpleFIN Sync is set up on a per-server instance. You'd need a separate instance

Good to know, I figured that was probably the answer. Thanks for the quick response!

@armanckeser
Copy link

A suggestion: could we allow the syncs to run in parallel and/or in the background (when using the mobile interface)

@tinng81
Copy link

tinng81 commented May 4, 2024

EDIT: Created a separate ISSUE for this

I think I found a bug relating to the simplefin authentication. I had an unrelated issue and I ended up deleting my simplefin API key and creating a new one. After a relogin to actualbudget I went to go add a new account with simplefin. The GUI shows an error Something internally went wrong. You may want to restart the app if anything looks wrong. Please report this as a new issue on Github. and the docker logs show the below.

58fac0e8600f SyntaxError: Unexpected token < in JSON at position 0
58fac0e8600f     at JSON.parse (<anonymous>)
58fac0e8600f     at IncomingMessage.<anonymous> (file:///app/src/app-simplefin/app-simplefin.js:237:24)
58fac0e8600f     at IncomingMessage.emit (node:events:529:35)
58fac0e8600f     at endReadableNT (node:internal/streams/readable:1400:12)
58fac0e8600f     at process.processTicksAndRejections (node:internal/process/task_queues:82:21)

From the GUI, the loading icon just spins, but I'm not ever able to update/fix my simplefin API key.

Is there anyway to update/fix the simplefin API key manually in a sqlite backup?

@RandomSwiss7983242 were you able to find a workaround? I'm also having to replace the token for simplefin but it seems the only way is to directly change it in the account db.

@larizzo
Copy link

larizzo commented May 8, 2024

I’m importing transaction from RBC using the Simplefin Sync. The Payee ends up being cut off and I only see “Contactless Interact purchase - 6900” I think the “CYCLE PAUL” part is potentially on a new line. Would there be a way to get the full transaction name?

May 6, 2024 | Contactless Interac purchase - 6900 CYCLE PAUL | -$6.88 |

I can gather an logs if you let me know what would be useful.

@youngcw
Copy link
Contributor

youngcw commented May 8, 2024

@larizzo If you can get a sample of your simplefin data that would help.

@esimkowitz
Copy link

esimkowitz commented May 10, 2024

I am having an issue where after setting up my setup token and going to the Actual "Add Account" flow to start importing my accounts, the loading spinner is just going on endlessly:
image

Has anyone else seen this?

Here's my logs:

Rejection: TypeError [ERR_INVALID_URL]: Invalid URL
at new NodeError (node:internal/errors:405:5)
at new URL (node:internal/url:676:13)
at file:///app/src/app-simplefin/app-simplefin.js:176:31
at new Promise (<anonymous>)
at getAccessKey (file:///app/src/app-simplefin/app-simplefin.js:175:10)
at file:///app/src/app-simplefin/app-simplefin.js:34:25
at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
at next (/app/node_modules/express/lib/router/route.js:149:13)
at Route.dispatch (/app/node_modules/express/lib/router/route.js:119:3)
at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5) {
input: "***",
code: 'ERR_INVALID_URL'
}

SimpleFIN is showing that Actual hasn't claimed the token yet, is there a way to reset the sync and try pairing again?

@larizzo
Copy link

larizzo commented May 11, 2024

@larizzo If you can get a sample of your simplefin data that would help.

I definitely can do that but I’m not sure how to get that data.

@mattpetters
Copy link

mattpetters commented May 11, 2024

I am having an issue where after setting up my setup token and going to the Actual "Add Account" flow to start importing my accounts, the loading spinner is just going on endlessly: image

Has anyone else seen this?

Here's my logs:

Rejection: TypeError [ERR_INVALID_URL]: Invalid URL
at new NodeError (node:internal/errors:405:5)
at new URL (node:internal/url:676:13)
at file:///app/src/app-simplefin/app-simplefin.js:176:31
at new Promise (<anonymous>)
at getAccessKey (file:///app/src/app-simplefin/app-simplefin.js:175:10)
at file:///app/src/app-simplefin/app-simplefin.js:34:25
at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
at next (/app/node_modules/express/lib/router/route.js:149:13)
at Route.dispatch (/app/node_modules/express/lib/router/route.js:119:3)
at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5) {
input: "***",
code: 'ERR_INVALID_URL'
}

SimpleFIN is showing that Actual hasn't claimed the token yet, is there a way to reset the sync and try pairing again?

Hey guys, just now becoming familiar with Actual and loving it. Thought about building something like this/wondering why there wasn't a cheaper/free alternative to YNAB for a long time. Anyways, I made a small fix PR for the issue described here. I set up a local instance, exported my budget, created an instance on fly.io and tried to import and found that 1) my setup token for SimpleFIN was wrong, and 2) my accessKey kept coming back as forbidden. I believe this is because the access key was valid for my first instance and not for my new instance on fly.io. The above URL error occurs because it is trying to parse the base64 encoded accessKey (which is just a URL in the successful case). However, when the setup token isn't valid, SimpleFIN gives back just the word "Forbidden" and that gets saved as the access key in the Actual DB. So obviously that string cannot be parsed like a URL.

This PR is a quick and dirty UI fix to let the user get out of that state without having to manually clear rows in their SQLite DB.
#2739

@ahandlen
Copy link

I am having an issue where after setting up my setup token and going to the Actual "Add Account" flow to start importing my accounts, the loading spinner is just going on endlessly: image
Has anyone else seen this?
Here's my logs:

Rejection: TypeError [ERR_INVALID_URL]: Invalid URL
at new NodeError (node:internal/errors:405:5)
at new URL (node:internal/url:676:13)
at file:///app/src/app-simplefin/app-simplefin.js:176:31
at new Promise (<anonymous>)
at getAccessKey (file:///app/src/app-simplefin/app-simplefin.js:175:10)
at file:///app/src/app-simplefin/app-simplefin.js:34:25
at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
at next (/app/node_modules/express/lib/router/route.js:149:13)
at Route.dispatch (/app/node_modules/express/lib/router/route.js:119:3)
at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5) {
input: "***",
code: 'ERR_INVALID_URL'
}

SimpleFIN is showing that Actual hasn't claimed the token yet, is there a way to reset the sync and try pairing again?

Hey guys, just now becoming familiar with Actual and loving it. Thought about building something like this/wondering why there wasn't a cheaper/free alternative to YNAB for a long time. Anyways, I made a small fix PR for the issue described here. I set up a local instance, exported my budget, created an instance on fly.io and tried to import and found that 1) my setup token for SimpleFIN was wrong, and 2) my accessKey kept coming back as forbidden. I believe this is because the access key was valid for my first instance and not for my new instance on fly.io. The above URL error occurs because it is trying to parse the base64 encoded accessKey (which is just a URL in the successful case). However, when the setup token isn't valid, SimpleFIN gives back just the word "Forbidden" and that gets saved as the access key in the Actual DB. So obviously that string cannot be parsed like a URL.

This PR is a quick and dirty UI fix to let the user get out of that state without having to manually clear rows in their SQLite DB. #2739

Experiencing this issue as well, would be great to not have to manage db to fix, thank you

@cliffjao
Copy link

cliffjao commented May 19, 2024

The balance in my brokerage account is always out of sync. It seems to take in the balance of my initial sync and only change the balance depending on transactions but not market value changes. I've tried to put the brokerage account as both budgeted and non-budgeted without any difference. Is this a known issue, or am I doing something wrong?

@psybers
Copy link
Contributor

psybers commented May 19, 2024

@cliffjao Actual is not designed for this kind of use case. Actual relies on transactions. So unless your brokerage account posts periodic "transactions" to indicate gains/losses, Actual will not directly support it. The sync does not alter the balance, it only finds and inserts transactions.

Some people simulate it manually by doing a reconciliation with the brokerage account's current balance and inserting reconciled transactions to update the balance.

@psybers
Copy link
Contributor

psybers commented May 21, 2024

Here is a fun bug. What happens when SimpleFIN deletes one of your banks (note: not me, they did it as part of fixing something on their end)?

It appears that on a sync, Actual just keeps going and trying to sync that one:
image

I let it run for a few minutes and I do not think it was going to time out. So the other 12 accounts were not sync'd because it was stuck on this missing one.

This probably will also cause the same issue if you log in and remove the bank yourself, but I did not test that.

@psybers
Copy link
Contributor

psybers commented May 21, 2024

The second issue might not be SimpleFIN-specific, but I think it definitely triggers it.

I took my unlinked account and wanted to link it. I went through the dialog, selected everything, and hit the button. The UI did not indicate anything was happening, there was no sync button, no linked account indicator next to the name, and the dropdown menu still said 'Link account'. It took it about a full minute (I think SimpleFIN is slow, for me, right now) before it suddenly re-rendered and looked like it was properly linked.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bank sync Related to automatic bank syncing experimental feature Related to an experimental feature feedback Single feedback thread for bug reports on a new feature
Projects
None yet
Development

No branches or pull requests