-
Notifications
You must be signed in to change notification settings - Fork 3.2k
fix(ui): autosave not queued while background process is in flight #14805
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
Merged
+121
−33
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Contributor
📦 esbuild Bundle Analysis for payloadThis analysis was generated by esbuild-bundle-analyzer. 🤖
Largest pathsThese visualization shows top 20 largest paths in the bundle.Meta file: packages/next/meta_index.json, Out file: esbuild/index.js
Meta file: packages/payload/meta_index.json, Out file: esbuild/index.js
Meta file: packages/payload/meta_shared.json, Out file: esbuild/exports/shared.js
Meta file: packages/richtext-lexical/meta_client.json, Out file: esbuild/exports/client_optimized/index.js
Meta file: packages/ui/meta_client.json, Out file: esbuild/exports/client_optimized/index.js
Meta file: packages/ui/meta_shared.json, Out file: esbuild/exports/shared_optimized/index.js
DetailsNext to the size is how much the size has increased or decreased compared with the base branch of this PR.
|
jacobsfletch
commented
Dec 5, 2025
| // Store fields in ref so the autosave func | ||
| // can always retrieve the most to date copies | ||
| // after the timeout has executed | ||
| formStateRef.current = formState |
Member
Author
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These refs are relics of the past, prior to the advent of useEffectEvent.
JarrodMFlesch
approved these changes
Dec 5, 2025
Contributor
|
🚀 This is included in version v3.67.0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When editing fields while an autosave is in flight, subsequent autosave events are not queued as expected. This results in inconsistency between what appears on the screen and what is persisted to the database, due to race conditions in background processing.
For example:
Screen.Recording.2025-12-03.at.10.35.03.AM.mp4
This is especially noticeable in virtual fields,
useAsTitle, and Live Preview, where the displayed values are a direct representation of the database, not local to form state.The problem is related to how we manage
modifiedform context. After successful submissions, we set this flag to false. This means if the user had made underlying changes to the form while a previous submission was processing, e.g. an autosave, the modified state gets wrongfully cleared and the next autosave bails out.Potentially related: #12691