mirror of
https://github.com/actualbudget/actual.git
synced 2026-07-11 11:59:55 -05:00
[GH-ISSUE #2827] [Bug]: Sync pulls one day prior to earliest transaction, causing a cycle that continues #90757
Closed
opened 2026-05-25 20:20:27 -05:00 by GiteaMirror
·
15 comments
No Branch/Tag Specified
master
tabedzki/feat/replacing-month-picker-with-day-picker
enforce-append-only-migrations-ci
delay-initial-sync-until-loaded
jfdoming/mobile-app-build
claude/error-codes-worker-boundary-26i5uu
jfdoming/api-tokens-part-1
jfdoming/api-tokens-part-2
jfdoming/api-tokens-part-3
jfdoming/mobile-app-updates
ai/simplify-categories-get-api
api-browser-custom-data-dir
claude/budget-version-migration-compat-151jlr
claude/worker-error-serialization-9iqtl7
claude/react-table-library-research-afx83z
claude/issue-8401-regression-test-9nw9l3
jfdoming/mobile-app-foundation-part-1
jfdoming/mobile-app-scaffold
release
ai-fix-cleanup-def-8290
claude/relaxed-shannon-jusywa
claude/fervent-keller-s6f2fq
claude/determined-feynman-st1y9z
claude/wizardly-einstein-vi2wce
claude/sweet-albattani-7nseio
feat/bank-sync-per-budget-file
claude/affectionate-cannon-y0kc82
claude/dependabot-findings-m9pgmb
claude/mac-app-ios-publish-zjs1lz
claude/vigilant-tesla-aiiyos
depot-migrate-secrets-1781296330308
claude/quirky-cerf-v5qck7
claude/animation-removal-alternative-2etfh1
claude/netlify-preview-comments-consolidate-9XPYa
osc/7391-error-boundaries-reports
claude/pensive-dijkstra-7DYui
claude/server-app-version-mismatch-HTCGv
claude/pr-8027-review-feedback-mELuO
claude/zealous-wozniak-e5pO0
claude/intelligent-heisenberg-BSHJq
claude/translation-download-refactor-jFRsO
claude/mobile-performance-ideas-G9PAO
claude/github-issue-7988-5A5ly
blacksmith-migration-ff70d2d
claude/great-mayer-KRvOk
claude/react-native-ios-compilation-fcJh5
claude/serene-goldberg-58xv0
claude/kind-euler-LVG3K
release-automation/edge-nightly
7710-bundle-migrations
claude/fix-docker-build-error-WMfed
claude/llm-compatible-release-notes-t20Nr
7710-tests-tdd
cursor/transaction-table-rewrite-f077
claude/plan-ci-secure-context-OtEe1
claude/fix-issue-7667-DPXi3
cursor/resolve-pr-7449-ee11
claude/fix-typescript-build-error-JPtZ5
copilot/add-repository-configs-to-packages
worktree-compressed-drifting-ritchie
claude/api-consumer-verification-kfz1K
pr-7454
claude/fix-issue-7410-LLLQ4
revert-7281-generate-icons
react-query-useSchedules
copilot/sub-pr-6140
package-upgrades
v26.7.0
v26.6.0
v26.5.2
v26.5.1
v26.5.0
v26.4.0
v26.3.0
v26.2.1
v26.2.0
v26.1.0
v25.12.0
v25.11.0
v25.10.0
v25.9.0
v25.8.0
v25.7.1
v25.7.0
v25.6.1
v25.6.0
v25.5.0
v25.4.0
v25.3.1
v25.3.0
v25.2.1
v25.2.0
v25.1.0
v24.12.0
v24.11.0
v24.10.1
v24.10.0
v24.9.0
v24.8.0
v24.7.0
v24.6.0
v24.5.0
v24.4.0
v24.3.0
v24.2.0
v24.1.0
v23.12.0
v23.11.0
v23.10.0
v23.9.0
v23.8.1
v23.8.0
v23.7.2
v23.7.1
v23.7.0
v23.6.0
v23.5.0
v23.4.2
v23.4.1
v23.4.0
v23.3.2
v23.3.0
v23.2.9
v23.2.5
v23.1.12
v22.12.9
Labels
Clear labels
AI generated
API
bank sync
budgeting
bug
can’t replicate
dependencies
docker
documentation
electron
experimental feature
feature
feedback
goal templates
good first issue
help wanted
importers
maintenance
needs info
needs testing
needs triage
needs votes
openid
payees
pull-request
regression
reports
responsive
rules
schedules
server
✨ merged
split transactions
tech debt
tech-support
theme
transaction import
transaction reconciliation
transactions
translations
upstream
user interface
✅ approved
wontfix
Mirrored from GitHub Pull Request
No Label
bug
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/actual#90757
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Ruharc on GitHub (Jun 3, 2024).
Original GitHub issue: https://github.com/actualbudget/actual/issues/2827
Verified issue does not already exist?
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

Step 2. Clicked Sync, Actual Docker logs show this

Step 3. Actual now shows this

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

Step 5. Actual now shows this.

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
@jclapadula commented on GitHub (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 commented on GitHub (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 commented on GitHub (Jun 27, 2024):
Can confirm it is an issue with GoCardless though...at least with Amex in the UK.
@youngcw commented on GitHub (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 commented on GitHub (Oct 24, 2024):
Can confirm on GoCardless using a Latvian bank account. Running in Docker, if that changes anything.
@pavekovt commented on GitHub (Oct 25, 2024):
Is there any workaround for this?
@epikaan commented on GitHub (Nov 23, 2024):
Same issue with Gocardless connected to Amex UK. It just keeps pulling old transactions even through I set a starting balance.
@pavekovt commented on GitHub (Nov 25, 2024):
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 commented on GitHub (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 commented on GitHub (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 commented on GitHub (Dec 6, 2024):
Once released will test on my end
@matt-fidd commented on GitHub (Dec 7, 2024):
This is confirmed as fixed in v24.12.0
@pavekovt commented on GitHub (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 commented on GitHub (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.
@frank20a commented on GitHub (Mar 28, 2025):
Using v25.3.1 and getting this problem. Also, if I do not delete the transactions before my starting balance and then re-sync, it wll pull even earlier transactions. I think this issue should be reopened.
edit: Using GoCardless