fix(ui): stale data modal incorrectly shown when user saves their own document#15933
Merged
PatrikKozak merged 2 commits intomainfrom Mar 13, 2026
Merged
fix(ui): stale data modal incorrectly shown when user saves their own document#15933PatrikKozak merged 2 commits intomainfrom
PatrikKozak merged 2 commits intomainfrom
Conversation
… to close race window
…ata-modal-race-condition
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.
|
AlessioGr
approved these changes
Mar 13, 2026
Contributor
|
🚀 This is included in version v3.79.1 |
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
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.
Overview
Fixes a race condition where the "Document Modified" modal incorrectly appears after a user types and saves their own document.
Key Changes
saveCounterRefto track in-flight saves, incremented in the Form'sonSubmitcallbackDesign Decisions
The stale data check compares
originalUpdatedAt(sent with the form-state request) against the current DBupdatedAt. If a save happened while a form-state request was in-flight, the DB timestamp advances andisStalereturns true — correctly for another user's save, but incorrectly for your own.The fix captures the save counter at the start of each form-state request and skips the stale modal if a save was initiated during that window. The counter is incremented in
onSubmit, which fires synchronously before the PATCH is sent. This guarantees the counter is already incremented before any form-state response could see our own save'supdatedAtas stale — closing the race window entirely.The two-user scenario is unaffected: the counter is per-instance, so another user's save doesn't increment the local counter and the modal still appears correctly.