Screen Flow with lightning-record-edit-form not saving changes on mobile

I created a Screen Flow that uses a custom LWC with lightning-record-edit-form to update Contact records. Users can edit multiple fields and click Save. The flow works perfectly on desktop, but on the Salesforce mobile app the record updates don’t persist - the form appears to save but when you navigate away and come back, the changes are gone.

The LWC component includes:

<lightning-record-edit-form object-api-name="Contact" record-id={recordId}>
    <lightning-input-field field-name="Email"></lightning-input-field>
    <lightning-button type="submit" label="Save"></lightning-button>
</lightning-record-edit-form>

The flow has proper object permissions and field-level security is set correctly. Automated updates fail for our mobile users who need to update contact information in the field. Is there a known issue with lightning-record-edit-form in Screen Flows on mobile?

Here’s the complete solution for integrating lightning-record-edit-form with Screen Flows for mobile compatibility:

Understanding the Issue The lightning-record-edit-form component handles its own save operation through Lightning Data Service (LDS), but Screen Flows don’t automatically capture these client-side updates. On desktop browsers, aggressive caching can make it appear that changes persist, but mobile apps refresh data more frequently, exposing the fact that the flow never actually saved the updates.

Solution: Proper Screen Flow and LWC Integration

Step 1: LWC Component with Event Handling Modify your component to explicitly communicate with the flow:

import { LightningElement, api } from 'lwc';

export class ContactEditForm extends LightningElement {
    @api recordId;

    handleSuccess(event) {
        const updatedFields = event.detail.fields;
        const saveEvent = new CustomEvent('recordsaved', {
            detail: { fields: updatedFields }
        });
        this.dispatchEvent(saveEvent);
    }
}

Update template:

<lightning-record-edit-form
    object-api-name="Contact"
    record-id={recordId}
    onsuccess={handleSuccess}>
    <lightning-input-field field-name="Email"></lightning-input-field>
    <lightning-button type="submit" label="Save"></lightning-button>
</lightning-record-edit-form>

Step 2: Flow Configuration In Flow Builder:

  1. Add your LWC screen component
  2. Create output variables in the component configuration to capture the saved field values
  3. Add an Update Records element AFTER the screen
  4. Map the output variables to the Contact record fields
  5. This ensures the flow explicitly saves data, not just the LDS cache

Step 3: Object Permissions for Flows Verify flow permissions:

  • Go to Setup → Flows → your flow → Open
  • Check “Run as System” vs “Run as User” context
  • If running as User, verify the mobile user’s profile has Edit permission on Contact object
  • Confirm field-level security allows editing the Email field
  • Mobile apps enforce stricter permission checks than desktop

Alternative: Use Standard Flow Components If your UI requirements aren’t complex, the standard Screen Flow record edit component is more reliable:

  • Drag “Record Update” screen element onto canvas
  • Select Contact object and fields to edit
  • This component automatically handles mobile compatibility
  • No custom code needed
  • Maintains consistent behavior across all platforms

Why This Happens on Mobile Mobile apps:

  • Clear LDS cache more aggressively than desktop browsers
  • Enforce stricter permission contexts
  • Have different component lifecycle timing
  • Don’t retain form state when navigating between screens

Desktop browsers cache more data locally, masking the fact that the flow never captured the updates. Mobile’s aggressive refresh exposes the integration gap.

Best Practice For Screen Flows, always use explicit Update Records elements rather than relying on component-level saves. This ensures your automation works consistently regardless of device or browser caching behavior. The lightning-record-edit-form is excellent for standalone Lightning pages, but Screen Flows require explicit flow-to-component integration for reliable mobile operation.


This draft is based on general Salesforce knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.

I’ve seen this before. The issue is usually how Screen Flows handle component state on mobile versus desktop. Mobile apps have stricter lifecycle management. Are you storing the record changes in flow variables? The lightning-record-edit-form might be submitting but the flow isn’t capturing the updated values.

Check if your Screen Flow has a separate Update Records element after the screen component. The lightning-record-edit-form in an LWC doesn’t automatically trigger flow record updates - it’s a client-side component. You need to pass the edited field values back to the flow using output variables, then explicitly update the record in a subsequent flow element. Desktop might appear to work due to browser caching, but mobile doesn’t cache the same way.

I don’t have an Update Records element - I assumed lightning-record-edit-form handled the save automatically. So the form submission doesn’t actually persist data in a flow context? That seems like a major limitation. How do I capture the field values from the form and pass them to the flow?

Tested this on Salesforce Mobile App v238 with a Screen Flow using lightning-record-edit-form, and explicitly wiring the form’s save event back to the flow resolved the sync issue completely.

The lightning-record-edit-form does save data when used standalone in a Lightning page, but inside a Screen Flow you need explicit integration. Add an onsuccess event handler to your form that fires a custom event. The LWC should use @api properties to receive the recordId from the flow and fire an event with the updated field values when save succeeds. The Screen Flow then captures those values and uses an Update Records element to persist them. This ensures consistent behavior across desktop and mobile.

There’s a simpler approach if you don’t need custom validation logic. Instead of using lightning-record-edit-form in a custom LWC, use the standard Screen Flow record edit components. Flow Builder has built-in record update screens that work reliably on mobile. The standard components automatically handle object permissions, field security, and mobile compatibility. Only use custom LWC with lightning-record-edit-form if you need custom UI or complex field dependencies that standard flow screens can’t provide.