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

[Bug]: Sync pulls one day prior to earliest transaction, causing a cycle that continues #2827

Closed
2 tasks done
Ruharc opened this issue Jun 3, 2024 · 14 comments
Closed
2 tasks done
Labels
bug Something isn't working

Comments

@Ruharc
Copy link

Ruharc commented Jun 3, 2024

Verified issue does not already exist?

  • I have searched and found no existing issue
  • I will be providing steps how to reproduce the bug (in most cases this will also mean uploading a demo budget file)

What happened?

Edit: I am using SimpleFin for the bank sync

I ran through this issue with youngcw on Discord, so I will be posting my screenshots and things I used to reproduce this that I discussed with them.
I wanted to start fresh in June so I cleared out all of my Accounts transactions. I put in a Starting Balance transaction with my balance amount that was June 1st. I cleared everything out of my account except for that one then I ran the sync. It pulled everything going back to and including May 31st. Then I ran the sync a second time and it included May 30th. It feels like each time it syncs it is seeing more transactions from earlier and adding in extra ones that it didn't get before.

It is basically always resetting the pull filter to include 1 day previous to whatever the earliest transaction in my ledger, including the extra ones that it pulled. I have verified this in the logs as well both on my regular budget file and in a brand new budget file.

Step 1. Started with this in Actual
image

Step 2. Clicked Sync, Actual Docker logs show this
image

Step 3. Actual now shows this
image

Step 4. Clicked Sync again without changing anything in Actual. Logs now show this.
image

Step 5. Actual now shows this.
image

This continues as long as there is no gap of days for the transactions it is pulling. It keeps grabbing all the transactions 1 day prior to the earliest transaction in the ledger. If there is a gap with no transactions then it has nothing to pull so it doesn't reset the date range to the day prior on the next sync.

I have verified this on multiple accounts with different banks and on multiple budget files.

Where are you hosting Actual?

Docker

What browsers are you seeing the problem on?

Chrome, Desktop App (Electron)

Operating System

Windows 11

@Ruharc Ruharc added the bug Something isn't working label Jun 3, 2024
@jclapadula
Copy link

jclapadula commented Jun 5, 2024

If it was not always like this, I think GoCardless might have changed the behavior of the API.

I'm not sure how it used to work, but now when you get transactions from dateStart, it brings transactions with bookingDate >dateStart (correct) but also with valueDate > startDate. So if a transaction has valueDate one day after the bookingDate, it will bring transactions that happened before the specified startDate...

@Ruharc
Copy link
Author

Ruharc commented Jun 5, 2024

I should have mentioned that I am using SimpleFin for the sync not GoCardless. I'm not sure if this changes what the problem could be. I will update the initial post with this information as well.

@kennylarsen
Copy link

Can confirm it is an issue with GoCardless though...at least with Amex in the UK.

@youngcw
Copy link
Member

youngcw commented Jun 27, 2024

I think likely what needs to happen is that the incoming transactions get filtered internally instead of just trusting that the returned data is in the right date range

@pavekovt
Copy link

Can confirm on GoCardless using a Latvian bank account. Running in Docker, if that changes anything.

@pavekovt
Copy link

Is there any workaround for this?

@giorgiooriani
Copy link

Same issue with Gocardless connected to Amex UK. It just keeps pulling old transactions even through I set a starting balance.

@pavekovt
Copy link

I still haven't found any reliable workaround.
However, it works as expected with Swedbank LV, only Revolut LV doesn't this -1 day transaction pull.

@Ruharc
Copy link
Author

Ruharc commented Dec 5, 2024

I can confirm this is still a problem. I suppose a workaround would be to have a rule that could delete all transaction prior to the Starting Date after sync. This way it doesn't keep the chain going continuously adding transactions going back. I do't think rules can delete transactions though can they?

@Ruharc
Copy link
Author

Ruharc commented Dec 5, 2024

Ok new update. This appears to have been fixed in the edge version, and should be fixed in 24.12 that is supposed to be released tomorrow!

@pavekovt
Copy link

pavekovt commented Dec 6, 2024

Once released will test on my end

@matt-fidd
Copy link
Contributor

This is confirmed as fixed in v24.12.0

@pavekovt
Copy link

pavekovt commented Dec 7, 2024

Well, it still pulls -1 day transactions on Revolut LV on v24.12.0. Can someone verify too @Ruharc, @giorgiooriani?
Please reopen.

@Ruharc
Copy link
Author

Ruharc commented Dec 13, 2024

I can confirm that for all of my accounts that are syncing it is only pulling from the Starting Balance transaction forward. This is using SimpleFin on the latest 24.12.0 on Unraid.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

7 participants