Gravity Flow 3.1.1 fixes a User Input step where saving progress could trigger required-field validation for a field with a default value, such as an Address field with a default state. Users could be blocked from saving partial work even though the step was not ready for final submission.
Use this for long applications, onboarding, approvals, grant forms, address-heavy workflows, member portals, frontend User Input pages, AJAX saves, conditional pages, and forms that prefill required fields.
Quick answer
Update Gravity Flow on staging and create a User Input fixture containing required text, Address with default state, conditionally hidden fields, dynamically populated values, file uploads, and a later-page required field. Test first save, second save, resume in a new browser, edit existing entry, AJAX save, expired session, and final submit. Saving progress should preserve permitted values without displaying final-submit validation for untouched later fields. Final submission must still enforce every applicable required rule.
Test scenarios to run
Run the same controlled fixture across these branches. Write down the expected result before testing so a surprising response is easy to identify.
| Scenario | Fixture | Expected result |
| First save | Address default only | Progress stored |
| Resume | New browser session | Values restored |
| Hidden required | Condition false | No false block |
| Final submit | Missing active field | Validation enforced |
Diagnostic table
Use this table to connect the observed behavior to evidence and a verification step.
| Action | Evidence | Verification |
| Update the workflow plugin | Record Gravity Forms, Gravity Flow, form and step IDs, page layout, AJAX state, default values, dynamic population, conditional logic, logged-in state, save token lifetime, and browser. | Fresh, repeated, resumed, AJAX, and edited saves retain the expected fields. |
| Build partial-entry fixtures | Build fixtures for Address defaults, later-page required fields, hidden required fields, file uploads, list fields, consent, calculations, and user-populated data. | Defaults and hidden fields do not create false validation failures. |
| Separate save and submit rules | Capture client validation, AJAX response, entry partial values, workflow note, current page, token, resumed values, and final-submit errors without storing real personal data. | Final submit enforces active required fields and consent. |
| Retest resume access | Test first save, repeated save, resume in another browser, edit entry, back navigation, expired token, role change, mobile, and network interruption. | Resume tokens, roles, and entry permissions prevent cross-user access. |
What to check first
- Record Gravity Forms, Gravity Flow, form and step IDs, page layout, AJAX state, default values, dynamic population, conditional logic, logged-in state, save token lifetime, and browser.
- Build fixtures for Address defaults, later-page required fields, hidden required fields, file uploads, list fields, consent, calculations, and user-populated data.
- Capture client validation, AJAX response, entry partial values, workflow note, current page, token, resumed values, and final-submit errors without storing real personal data.
- Test first save, repeated save, resume in another browser, edit entry, back navigation, expired token, role change, mobile, and network interruption.
- Separate save-progress validation from final-submit validation, preserve only intended values, and keep access controls around resumed entries.
Field notes
- Write the pass condition before changing anything and keep one repeatable synthetic fixture for the full test window.
- Record exact versions and UTC timestamps because deployments, caches, retries, scheduled actions, and background jobs can change the evidence.
- Test the public path and the stored server-side result, not only an admin preview, isolated command, or API response.
- Repeat verification after the relevant cache, queue, cron, webhook, and observation window has completed.
Useful command or data shape
Adapt paths, IDs, and privacy handling to the site before running commands or storing data on production.
# Use synthetic entries only.
wp plugin get gravityflow --field=version
wp plugin get gravityforms --field=version
# Correlate the AJAX request, entry ID, workflow note, and resume token expiry.
Why this usually happens
- Save progress reuses a validation path designed for final submission.
- A default subfield makes the parent Address field appear partially complete.
- Conditional logic changes between initial load and AJAX save.
- A resumed entry is evaluated with a different role or session context.
Decision rule
Approve the form when save progress preserves valid partial work without premature required errors and final submission still blocks every active missing field.
Production verification checklist
- Fresh, repeated, resumed, AJAX, and edited saves retain the expected fields.
- Defaults and hidden fields do not create false validation failures.
- Final submit enforces active required fields and consent.
- Resume tokens, roles, and entry permissions prevent cross-user access.
Safe fix order
Use a sequence that makes each result easy to prove. Stop when new evidence changes the scope or owner of the problem.
- Update the workflow plugin
- Build partial-entry fixtures
- Separate save and submit rules
- Retest resume access
- Monitor failed saves
Mistakes to avoid
- Changing production before recording exact plugin versions, UTC timestamps, a stable fixture, the expected result, and a tested rollback point.
- Treating one successful screen as proof while stored records, logs, queues, caches, emails, APIs, and downstream systems remain unchecked.
- Testing only as an administrator instead of using the role, device, locale, cache state, payment state, and failure branch that customers reach.
- Leaving temporary exclusions, debug output, test accounts, broad permissions, or one-off repair code active after verification.
Questions teams ask during testing
Can I run this directly in production?
Begin with read-only evidence and use staging for package, database, checkout, form, permission, or security changes. If a production canary is necessary, make it identifiable, reversible, monitored, and unable to expose personal data or charge a customer.
How do I avoid a false positive?
Repeat the same fixture with the same versions, role, URL, locale, cache state, and integrations. Compare browser, stored, API, and log evidence instead of relying on one screen.
What should the evidence packet contain?
Keep UTC time, exact versions, synthetic record ID, expected result, actual result, relevant log lines, change made, rollback point, owner, and final verification. Redact secrets and personal data.
When is the test complete?
Close the work when the primary path passes, failure branches are understood, stored and downstream records reconcile, temporary changes are removed, and monitoring covers the next update.
What to tell the client or owner
Give the owner a concise packet with the affected workflow, exact versions, UTC test time, fixture ID, expected result, actual result, key logs, change made, rollback point, final result, unresolved risks, owner, and next review date. Remove credentials and personal data before sharing it.
When HandL WP should help
Bring in help when this affects leads, checkout, search visibility, security, paid media reporting, or a client production site. HandL WP can trace the issue through WordPress, hosting, cache, tracking, and Search Console, then verify the workflow after the technical fix.
If this is active on a production site, have HandL WP test a Gravity Flow form workflow.
Related HandL WP guides
Use these related guides when the same issue touches tracking, security, checkout, or crawler visibility.
Audit display-only fields in workflow routing
After validating Save Progress, run the Gravity Flow 3.1.1 display-only field routing audit. It checks that sections, page breaks, and HTML controls cannot remain as impossible editable assignments after an update, import, or copied workflow.
Related fixes to check next
Gravity Flow Shows a Form Confirmation When Saving a Step: A standard form confirmation can appear during a workflow step save. Check stored values and history before submitting the same action again.
Helpful references