The short answer

An error message should explain what happened to the user's work and what they can do next. Avoid implying success or failure when the system has not confirmed the outcome.

Prepared with AI assistance. These are practical scoping recommendations; examples are illustrative, not client results.

State the result accurately

If a request was not saved, say so. If the outcome is uncertain, explain that confirmation was not received and provide the supported next step. Do not display a generic try again message when repeating the action could create duplicate work without a corresponding protection.

Preserve useful input

Where appropriate, keep the user's entered information available after a validation or connection problem. Identify the field that needs correction and use language the user can act on. Requiring a full re-entry after a small mistake adds friction and may encourage users to abandon the workflow.

Provide a support reference

For unexpected failures, show a non-sensitive reference that the support team can use to investigate. Keep internal implementation details and secrets out of the message. The user needs an understandable next action, while the support team needs a reliable way to locate the relevant event.

Test the failure experience

Exercise invalid input, an interrupted request, and an unavailable dependency. Ask a user to explain whether their work was saved and what they should do next. If the answer is unclear, improve the message and workflow together rather than treating error text as a final cosmetic task.