fix(DF-1004): pin form.live.version at publish to fix live submission crashes#792
Closed
fix(DF-1004): pin form.live.version at publish to fix live submission crashes#792
Conversation
ad44685 to
9197674
Compare
… crashes
getFormDefinition was injecting the latest form-versions row regardless
of Live vs Draft state. Draft saves create new version rows, so
published forms with unsaved drafts on top had their live submissions
tagged with the draft's version number, and notify-listener crashed
trying to render the submission against a mismatched definition.
Pin { versionNumber, createdAt } onto form.live in createLiveFromDraft
and read it in getFormDefinition for Live. Draft keeps using latest.
Legacy live forms without a pinned version return the definition
unchanged; the downstream pipeline treats missing versionMetadata as
"use current live", which is the correct fallback.
Also strips any persisted $$__formVersion key from stored definitions
on the no-inject paths, guarding against stale keys from JSON re-imports.
9197674 to
6a351f5
Compare
|
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.

Summary
getFormDefinitionwas injectinggetLatestVersion()for both Live and Draft. Draft saves bump the version, so published forms with unsaved drafts tagged live submissions with the draft's version — notify-listener then crashed on mismatched component keys.Fix
Pin
{ versionNumber, createdAt }ontoform.live.versionat publish; read it for Live. Draft unchanged. Legacy live forms without a pin return no$$__formVersionso downstream falls back to current live definition, which is correct.