Error Screen Message Design in Screen Flows

Fault paths give the opportunity to the developer to catch and handle fault scenarios. When an error is handled, the user will not see system error messages that are often not easily understandable and traceable. System messages don’t offer alternative paths for the user to choose to mitigate the issue.
Most flow builders know that they can build fault paths on the back of various elements in flow. These paths will allow the automation to take a different route when the fault occurs. The inconvenient truth about these fault paths is that the flow will still generate an error email. If you are an admin with tens of active flows or a consultant with hundreds of them deployed, you would not want to receive emails every time one fails. So, going down the fault path is like avoiding an accident with a scratch. Therefore you should build fault paths but avoid using them when executing other than unforeseeable exceptions.
How Do You Build For Fault Scenarios?
The field validation inside your screen element is your first tool to avoid errors. Remember; your screen flow is unaware of the validations you built on the object. This means that you need to create the same validations inside your flow, so that you don’t face any errors when your flow creates or updates an object record.
Your next step is to use decision elements to predict and handle all possible outcomes. Next, connect your outcomes to human-readable error messages on screen elements that allow the user to take the necessary actions.
This method is useful for screen components that don’t support custom validations on their subcomponents (e.g. address component), or for dynamic forms for flow (fields) components that don’t allow you to change the required attribute.
Use Case
You have a screen flow guiding the user with creating an order. And the user can select how the ordering party will pay. Among the payment choices, there is a credit card option. However, you don’t have the credit card information for all clients entered into the system. In addition, you don’t want the user to collect credit card information due to security concerns.
Following the screen that facilitates the payment method selection (a picklist), you can build a decision that checks whether the credit card information for the account is on file. You can then connect the decision outcome to a screen element that displays this message: “There is no credit card information for the account on file; please pick a different payment method.”
If you have a process that collects the credit card information from the account contact in a secure way, you can ask the user to trigger that process based on the user’s selection.
If you don’t want a standalone error screen, you can mimic the validation error messages using display text components in screen flow.

How Do You Build A Custom Error Message in Screen Flows?
- Create an ErrorMessageTextVar text variable under resources.
- Create a decision after the screen subject to the error check and build the error outcome criteria: “Yes Error“
- Add an assignment on the “Yes Error” path and assign to the ErrorMessageTextVar an error message similar to “Please correct the error and resubmit.“
- Add a display text component on the screen where the check occurs and add ErrorMessageTextVar. You can change the color of the font to red. Remember; the message will only be displayed if a value is assigned to the text variable.
- Connect your assignment step to the screen element, creating a loopback for when the error condition holds true.
If you want to avoid having your user reenter all the information, work with a record variable, assign the values of your screen components to the record variable fields, and set the default values for the screen components to the record variable field values. If done correctly, the screen will prefill the information that the user entered before the error occurred.
You can still use fault paths for the cases you cannot think of and connect them to a catch-all error screen. If you want to make sure the database commits and the current transaction will be rolled back when you experience an error, use a roll-back element right before this catch-all error screen and wherever needed in your flow. The sequence is important here, as the rollback won’t happen if you put the error message screen before the rollback records element, and the user does not click next on the error screen.
Your catch-all error message screen should give the user all the relevant information they need for future reference. You may include, based on your personal preference, information such as:
- The system error message: $Flow.FaultMessage global flow resource
- What the user should expect in terms of what has ben committed and what has been rolled back.
- Record name
- Record Id
- Date and time of the error
- Next steps
See the image below for an example.

Remember that system error messages can look pretty ugly and confusing. You can build your own and guide your users by following the instructions provided in this post.
Conclusion
Handling errors effectively in Salesforce Flow isn’t just about preventing system failures—it’s about creating a seamless user experience that guides users through automation without unnecessary roadblocks. Fault paths provide a safety net, but relying on them excessively can lead to error email overload, making it harder to maintain large-scale automation. Instead of treating fault paths as the first line of defense, think of them as a last resort for handling unpredictable system errors.
The key to proactive error management lies in anticipation and control. By leveraging field validation inside screen elements, using decision elements to check for possible failure points, and displaying custom error messages, you can prevent users from running into issues that would otherwise trigger a flow error. When errors do occur, providing clear, human-readable messages ensures that users know what went wrong and how to correct it—without exposing them to confusing system-generated error codes.
If an unexpected failure happens, a catch-all error screen combined with a rollback element ensures that incomplete transactions don’t affect data integrity. By giving users relevant information—such as error messages, record details, and next steps—you transform frustrating roadblocks into guided troubleshooting opportunities. Thoughtful error handling in Flow makes your automations more reliable, user-friendly, and scalable, ensuring that both admins and users can trust the processes they rely on.
Explore related content:
7 Effective Flow Learning Strategies

I created this path and shows error message, but when it is fixed and if I select previous error message still displays even after fixed. How can I make sure error message disappears when I click previous?
After the screen where the error message is used, use an assignment on the no-fault path to assign a blank value to the error message variable.
I can create another path? currently I have only one path