mirror of
https://github.com/actualbudget/actual.git
synced 2026-07-16 15:14:02 -05:00
[GH-ISSUE #478] [Bug]: "invalid schema" shows misleading "Update required" error message #25955
Closed
opened 2026-04-18 01:46:20 -05:00 by GiteaMirror
·
8 comments
No Branch/Tag Specified
master
claude/verify-migration-guardrails-i82c8m
cross-version-sync-stage2
api-browser-custom-data-dir
dependabot/npm_and_yarn/npm_and_yarn-cd62b4b37a
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#25955
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 @albertogasparin on GitHub (Jan 17, 2023).
Original GitHub issue: https://github.com/actualbudget/actual/issues/478
Verified issue does not already exist?
I have searched and found no existing issue
What happened?
After creating, removing and recreating a file on my laptop, sync broke on my iPad and was not able to make it work until I triggered reset sync from the laptop itself. The error message showing up on the iPad was "Update required" even if was using the latest web version directly from the server 😕
I thought the problem was on some cache on iPad, so deleted all data there (tried network caches, local dbs, ...) but Actual would still start syncing and then log an "invalid schema" error in the console.
Turns out the problem (likely) was the server sending a partial file even when no file was available on the device. I saw from the logs that "Got meta for documents-Actual-My-Finances-ea6e8ff-db.sqlite" size was very different between the broken sync (300KB) vs when the full sync happened (1.1MB).
I think it would be helpful to improve the messaging on the error (or have a complete different errors for these "invalid schema" exceptions) and provide a way for the device where this error occurs to discard local data and have the server send a full sync again.
App: 23.1.12 | Server: 23.1.12
What error did you receive?
No response
Where are you hosting Actual?
Fly.io
What browsers are you seeing the problem on?
Safari
Operating System
Mobile Device
@Kidglove57 commented on GitHub (Jan 18, 2023):
I am a non technical user. I agree the wording of the message is misleading - I had got so used to it that I did not report it.
In your situation, I
a) close the file on my iPad,then
b) delete that file on the iPad being very careful to select local only.
C) I then click on the file again to re-download it and all is well
Please excuse me if I have misunderstood.
@jlongster commented on GitHub (Jan 18, 2023):
The reason that is the error message is because 95% of the time the reason this happens is because the app has been updated with some new fields in the database, and another client has started using these new fields. An older version of the app will then run into this error, and the likely fix is it just needs an update. The error shouldn't be any scarier than that.
It's weird that you ran into "invalid schema" -- usually local db problems are more like a corrupt database entirely. I'd be curious to dig into what happened more. If anyone runs into this again, it could be worth looking at what changes are trying to be applied and why they aren't working. Usually, if there's a bug (and it's usually the browser's problem of messing with the persisted data) with the db in the browser it'll mess up the data in more serious ways that shows other error messages.
@jlongster commented on GitHub (Jan 18, 2023):
And yes @Kidglove57 is right. You can always delete a file locally and then select it to re-download it.
I don't trust the iPad browser's storage to be honest. I've heard these kinds of problem before and it might not be good enough to run a fully local app. But I haven't looked into it more :)
@Kidglove57 commented on GitHub (Jan 18, 2023):
I have been using Actual open source on my iPad for quite some months and this is the only issue I have run into on iPad. In other words having to re-download the file after I had (for example)re-imported it on laptop.
I do export regularly though, just in case, so that I have a backup!
However, I have run into a similar error from time to time in Safari on my laptop. And I have solved it by deleting the local version and re-downloading. After doing so, I have immediately tested my existing Actual links in Firefox and Brave on laptop and found that there were no issues with them. This is leading me to wonder if there is something "unique" about the way Safari handles the cached data? To reiterate Safari is the only browser in which I have had an issue with Actual, on laptop or iPad
@j-f1 commented on GitHub (Jan 18, 2023):
Maybe it would be helpful to add a bit more info to this error? For example I hit it while testing locally because I added a column (for #268) to my budget and now I get the error. Maybe there could be more detailed diagnostic info in the message? (there definitely was in my case)
@jlongster commented on GitHub (Jan 18, 2023):
@Kidglove57 Actual stresses browser's local persistence layer because it stores everything locally. That means the implementation (called IndexedDB) must be rock solid to have a smooth and solid experience 100% of the time. Safari's unfortunately is not quite there; it's a complex thing to get right and Safari tends to have less devs working on it than Chrome/Firefox. (I personally use Safari! I do love it but have to accept this tradeoff)
@j-f1 Yeah for sure. It could be better, y'all feel free to change it however you like. Just wanted to give some context for why it was written that way in the first place.
@j-f1 commented on GitHub (Feb 21, 2023):
Update: with #671, there is now more information logged into the console.
@MatissJanis commented on GitHub (Mar 30, 2023):
👋 Hey @albertogasparin just checking in if this issue is still something you experience in the latest version?
If not - lets close it off. :)