mirror of
https://github.com/actualbudget/actual.git
synced 2026-07-15 22:54:03 -05:00
Closed
opened 2026-04-10 20:18:44 -05:00 by GiteaMirror
·
4 comments
No Branch/Tag Specified
master
dependabot/npm_and_yarn/npm_and_yarn-cd62b4b37a
enforce-append-only-migrations-ci
claude/error-codes-worker-boundary-26i5uu
api-browser-custom-data-dir
tabedzki/feat/replacing-month-picker-with-day-picker
delay-initial-sync-until-loaded
jfdoming/mobile-app-build
cross-version-sync-compat
jfdoming/api-tokens-part-1
jfdoming/api-tokens-part-2
jfdoming/api-tokens-part-3
jfdoming/mobile-app-updates
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
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#9963
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 @anoff on GitHub (Mar 22, 2026).
Original GitHub issue: https://github.com/actualbudget/actual/issues/7258
What happened?
I set daily, automatically added scheduled transactions to mirror a scheduled transaction on my bank account.
✅ In the schedule view the upcoming days shows correctly each day, also in my accounts overview they are showing up as upcoming on each day.
🐞 However the actual transactions get created only every 3rd (sometimes it's off) day.
Instead of having a transaction on every day I end up with having them on 2026-03-21, 2026-03-17, 2026-03-14 only.
Initially I suspected it only updates when I'm accessing the app but I'm adding transactions every day so must be another reason.
Screenshot of the schedule view showing the correct future schedules, but wrong past schedules:
How can we reproduce the issue?
Where are you hosting Actual?
Docker
What browsers are you seeing the problem on?
Other, Firefox
Operating System
Mac OSX
@anoff commented on GitHub (Mar 22, 2026):
I took a stab at analyzing the potential root cause.
Disclaimer: Initially I asked Claude to point me in the right direction, but then did my own digging through the typescript code. So this is not AI-assisted but not vibed.
Potential root cause
The getHasTransactionsQuery(schedules) allows past transactions to be off by 2 days, probably to accomodate for slight deviations in manual transactions and bank transfers.
However when there are daily transactions that means it always finds a existing transaction within the last 2 days as well.
See next chapter for what I believe is happening overall.
Assumptions
Based on what I understand from the code, I think this is what's going wrong:
app.ts:advanceSchedulesService()is in charge of checking schedules and proceeding themawait postTransactionForSchedule({ id: schedule.id **});can only be reached if thestatus != 'paid'dateCond.op != 'is'(only used for schedules with 1 fixed date)advanceSchedulesService()the schedule is considered as'paid'because there was a transaction yesterdayPotential fix
There are a few ways to fix, this, please advise which you prefer and I'll push a PR :)
A: Add a case for automatic transactions
As automatically created transactions should always be on time, we just disable the 2 day lookback for those.
B: Add a case for daily transactions
Similar as above but assuming the special scenario is daily schedules.
For any daily schedule - automatically added or not - it does not make sense to check for existing transactions other than on the current day.
C: Combine both conditions
Would specifically target daily + automatically created transaction schedules only.
Personally I would go with A because the 2 day lookback is a feature only relevant for manual (or synced) transactions, not for those created by AB directly.
Test Case
I asked [AI] for a test case for this and it ended up deserializing the query and checking for that.
I would not add that kind of implementation-specific test cases into my codebase but if you feel it might help with future regression testing I can add something along these lines to the PR as well.
@matt-fidd commented on GitHub (Mar 23, 2026):
@anoff thanks for doing the digging here, of your options "A" seems the most sensible
@matt-fidd commented on GitHub (Mar 23, 2026):
This is a duplicate of https://github.com/actualbudget/actual/issues/1847, I'll close this off in favour of the older one, but the debugging here is valuable.
@anoff commented on GitHub (Mar 27, 2026):
Whoops, sorry I searched but didn't find that one.
I'll create a PR for #1847