mirror of
https://github.com/actualbudget/actual.git
synced 2026-07-16 07:04:23 -05:00
[Bug]: Focus is always November 2023 #1051
Closed
opened 2026-02-28 19:30:04 -06:00 by GiteaMirror
·
20 comments
No Branch/Tag Specified
master
dependabot/npm_and_yarn/npm_and_yarn-cd62b4b37a
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
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#1051
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 @GitOnOut on GitHub (Apr 20, 2024).
Verified issue does not already exist?
What happened?
I'm hosting Actual on fly.io. No matter what I do, whenever I open Actual, the month of November 2023 is always selected, not the current month.

It happens whenever I open up Actual from fresh:
If I reload the page in a browser, it remembers the month I selected. If I delete the tab and open it again, same thing, it remembers which month I selected. But as soon as I quit the browser and restart it, or in a new instance on my phone, or in a private window, it picks November. No matter how many months go by, it's stuck in November.
Interestingly, I have another budget file I created for a friend on my fly.io server a couple months after I first started using Actual. In that budget, the month in focus when Actual first opens is always January 2024.
In short, I have 2 budget files. One created months after the other. On the earliest one, it's always November 2023. In the latest one, it's always January 2024. So maybe that has something to do with it.
If this doesn't get fixed, as time goes on, I fear I'll be scrolling through endless months to get to the current one. Lol.
Where are you hosting Actual?
Fly.io
What browsers are you seeing the problem on?
Firefox, Safari
Operating System
Linux
@Kidglove57 commented on GitHub (Apr 20, 2024):
That must be incredibly annoying! I have not seen it reported before.
I have an instance hosted on Fly and another on PikaPods. Both open correctly with the current month. Sounds as if you have already addressed this but I wondered if it is a caching issue?
@MatissJanis commented on GitHub (Apr 20, 2024):
👋 The active month selection comes from local storage. If you are using a fresh session (i.e. incognito) - your local storage would be empty and thus we would fall back to the "current month". Which uses your local clock to calculate this.
Is your local clock correct? Is the date in your browser in April?
Try visiting this site to check if your local clock is correct: https://webbrowsertools.com/timezone/
@GitOnOut commented on GitHub (Apr 20, 2024):
According to that website, my local clock is correct. Webbrowsertools says April, Actual says November. It's happening across multiple devices and browsers.
I also checked on iOS and I remembered an important detail. In the mobile view, it says April. But as soon as I switch to landscape view to see the desktop version of Actual, it's November. So at least in the mobile view, this bug isn't happening.
@youngcw commented on GitHub (Apr 22, 2024):
Are other user prefs persisting, like the theme or date format settings?
@GitOnOut commented on GitHub (Apr 22, 2024):
The theme does not persist, but interestingly the date format does persist. I have it set to YYYY-MM-DD.
@MatissJanis commented on GitHub (Apr 23, 2024):
Theme is stored in global prefs (indexeddb). Whereas date format and currently active budget month - in local storage.
So my bet would be that something is going on with your local storage.
I don't know why and how though. Especially because it happens on multiple devices and browsers.
@MatissJanis commented on GitHub (Apr 23, 2024):
Try importing your budget in https://demo.actualbudget.org - does it default to
novthere too?@GitOnOut commented on GitHub (Apr 23, 2024):
Imported my budget, and did not get the November bug there! It correctly says April. Tried on both my computer, and mobile phone. No bug.
I also want to say that when I first began to use Actual, which must have been a year ago, this bug was not present. I've only been encountering this since... well, since it became December 2023 and my budget stayed on November. So if something in Actual's code caused this, it would probably have been a change which happened around that time, because I update the app regularly when a new version comes out. Sorry for not reporting this sooner!
@Kidglove57 commented on GitHub (Apr 24, 2024):
Just a double check, in view of (a) your success in importing into the Demo and (b) that this issue has not occurred for any other user as yet. Have you followed the below process?
a) taken an up to date export.
b) then fully deleted your existing budget file on Fly
c) then reimported the file that you exported?
@GitOnOut commented on GitHub (Apr 24, 2024):
Just tried it, twice. It didn't work. Still November.
Reminder: the bug doesn't happen on the mobile view in iOS. Only when I switch to the desktop view by going into landscape mode, does it become November. I wonder why the mobile view is not affected.
@GitOnOut commented on GitHub (Apr 24, 2024):
I just realized as well that April is always in bold, even when it's November... so my computer must KNOW it's April. Otherwise why would it be bold? It just opens the budget view in November regardless. That must be another clue.
@MatissJanis commented on GitHub (Apr 24, 2024):
Would you be open to DMing me on Discord the link to your server and the passcode so I could debug this on my end?
@GitOnOut commented on GitHub (Apr 24, 2024):
Done.
@MatissJanis commented on GitHub (Apr 25, 2024):
Ok, thanks to @GitOnOut I managed to reproduce the issue.
Here are the steps:
--
What happens here is: we save the local prefs to
metadata.jsonfile. This is stored alongside the core sqlite database we use for the product, but themetadata.jsonfile is not synced with the remote server.When we export a file - it exports all the local prefs in the
metadata.jsonfile. This includes thestartMonthpref which the user has selected.When the budget is imported - it gets uploaded to the server. Including the
metadata.jsonfile. This is the "default" state that will be used in the future for this budget.When you open the budget - we download this budget file and store it on the local machine. If the user changes the active date - we update the local
metadata.jsonfile, but never update it in the server. Subsequent sessions will use the localmetadata.jsonfile.But then we open the page in incognito: which means there is no local version. So we fall back to the server version. So we download the
metadata.jsonfrom server where the date is set in the past.That's the root-cause of the problem and the repro steps. Now we just need to patch it.
@MatissJanis commented on GitHub (Apr 25, 2024):
budgetNameis also stored inmetadata.json, but it does not have the same problem. That's because we have a special edge-case for it:469c789c14/packages/loot-core/src/server/main.ts (L1262-L1278)I wonder if expanding this edge-case scenario so it would save all the local config changes in the same way would be a good solution.
@GitOnOut commented on GitHub (Apr 25, 2024):
Congrats on solving the bug!! This was such a pesky annoyance, thank you SO much :D
Though, I still wonder why the mobile view displays accurately lol
Wouldn't it share the same issues regarding the prefs?
@youngcw commented on GitHub (May 3, 2024):
Would it make sense to just not include the most recent month in metadata.json? I think it would probably be more clear overall to not have that pref persist outside a single client instance.
@MatissJanis commented on GitHub (May 3, 2024):
You're on the right track.
metadata.jsonis used for all local prefs for storage. So simply removing them frommetadata.jsonwould introduce a different problem: where do we persist local prefs? And what's even the purpose ofmetadata.jsonif local prefs are moving away from it?So instead of removing them entirely from
metadata.json- I was thinking of leaving them there, but removing them only when performing exports. Alas that was my thought process.. but maybe there is a better solution here I'm not seeing.@MatissJanis commented on GitHub (May 18, 2024):
Ok, returning back to this.
Here are some further thoughts. Let me know if you agree and I'll start patching this issue.
MetadataPrefsandLocalStoragePrefs(naming TBD); The metadata prefs (budget name, cloud file id, etc.) would still be stored inmetadata.json. Whereas the local storage prefs would be fully local - stored in local storage. Thus no conflicts between devices.Personally I'm leaning towards (4). Let me know your thoughts!
@MatissJanis commented on GitHub (Sep 21, 2024):
This has now been solved in the
edgeversion.