<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5HGSQD2L" height="0" width="0" style="display:none;visibility:hidden" title="GTM"></iframe>

Error States

Definition

Something is considered an error state if it meets these requirements:

  1. Triggered after a user interaction or Vista system failure
  2. Blocks the user from progressing with their task
  3. Requires the user take action in order to move forward. This action could be specific (correcting the number of digits in a phone number) or generalized (trying again later)

Structure

Use a consistent, structured framework

Error messages should always do 2 things:

  • Tell the user what went wrong (the problem). Provide a clear, concise statement about the current state. This provides context for the user and builds trust. In some scenarios the problem can be implied, as shown in Example #2
  • Tell the user how to fix it (the resolution). Provide a direct, actionable path forward. An error message without guidance on how to resolve the problem is a dead end

Example #1

In this example, the problem and resolution are explicitly stated. The first sentence tells us what’s wrong, and the second tells us what to do next. Each part is straightforward, and it’s a good go-to format to follow.

Annotated example of an error message

Example #2

In this example, the problem is expressed implicitly. By telling the user that the phone number needs to be 10 digits, we’re letting them know that what they entered didn’t follow that format. The solution remains explicit: they must enter the number to proceed.

Annotated example of an error message

Be concise and front-load important information

Aim for clarity and brevity, prioritizing critical information to enable users to understand the problem and unblock themselves as quickly as possible.

In error messages, Links should function as actionable CTAs. These should be placed at the end of the message so users get the full context of the message before being prompted to take an action.

Don’t use end punctuation after a Link.

Don’t use Links in Form errors.

Don't rely solely on color to indicate an error

The message must explicitly state the problem so screen readers and users with visual impairments don't have to rely on a red outline or icon to know something is wrong.


Grammar and mechanics

Use sentence case

It’s easier to read and helps people scan the content. Proper nouns are an exception:

  • Always capitalize proper nouns such as brand names (example: Gildan)
  • Always capitalize features or site areas that have been designated as proper nouns by the organization (example: Brand Kit or Help Center)

Never use all caps.

Remove unnecessary punctuation

Don’t use end punctuation for errors with just 1 sentence or phrase.

In multi-sentence messages, use end punctuation for all sentences.

  • Exception: When an error message ends with a Link, don’t use end punctuation after the Link

Never use exclamation marks as they can imply a false sense of urgency or severity.

An error message should never include a question, so don’t use question marks either.

Examples


  • Please enter an email address
  • We’re having trouble loading this preview. Please refresh the page or try again later.

Use consistent tenses for ongoing or completed issues

Use present tense for ongoing issues or states. Use past tense to describe a distinct, completed event that caused a problem.

Examples (Present)


  • This file format is not supported
  • We're having trouble loading this preview

Example (Past)


  • We couldn't save your address

Don’t use Latin abbreviations

Don't use Latin abbreviations like i.e. or e.g. to introduce examples.

Instead of


Enter a 10-digit US number including the area code (e.g., 555-555-5555)

Use


Enter a 10-digit US number with an area code (555-555-5555)


Language, voice and tone

Don’t use technical jargon or negative language

Never use technical backend terms such as: error codes, null, API, 404, timeout, syntax, database, invalid, failed, forbidden. Use plain language instead.

Don’t create a false sense of urgency

Never use all caps or exclamation points and avoid language that could be considered alarming, such as: urgent, critical, warning. This can make a situation seem worse than it is, causing unnecessary stress for users. Keep messaging straightforward and constructive.

Write meaningful CTAs

If the error message includes a Button or Link, the copy must clearly describe the action.

Instead of


  • Update
  • Go back
  • Click here (to edit)
  • OK

Use


  • Update billing information
  • Return to cart
  • Edit shipping address
  • Save changes

Write for a Flesch reading ease score of 60–80 (US Grade 6-8 reading level)

Clear, simple phrasing is essential for minimizing mental effort and to ensure successful translation/localization. Use the Vista error message generator (beta) to check the reading ease score.

Don’t blame the user

Avoid using pronouns like “you” or “your” in a way that implies fault. Instead, focus on neutral, solution-oriented language.

Instead of


You didn't select a date

Use


Select a date

Use “please” cautiously

Using "please" can undermine our authority. It could lead users to think a required next step is an optional suggestion. Use clear, direct verbs instead.

Instead of


Please enter your first name

Use


Enter your first name

Use “sorry” cautiously

Saying "sorry" too often or in the wrong context can make the situation feel worse, especially if multiple apologies in a single session compound.

Take responsibility with words like “we,” “us” or “our”

When our systems fail, it's better to take responsibility using "we," than to say "sorry." Focus on the resolution rather than dwelling on the apology.

Instead of


We're sorry, something went wrong. Please try again.

Use


Something went wrong on our end. Refresh the page or try again.

Only apologize when we’re at fault

When an apology is necessary, keep it concise and focus on the resolution.

Instead of


This payment method is currently unavailable. We apologize for the inconvenience this may cause.

Use


Sorry, this payment method is currently unavailable. Select a different payment method or try again later.

Use the relevant Cimpress brand name when requesting access to third party platforms

Using the brand names (like VistaPrint) provides better clarity in security contexts and aligns with the formal "App Name" displayed by third-party OAuth screens (like Google or Meta). Never use “we” when requesting access to third-party accounts.

Instead of


We need access to Google Drive

Use


VistaPrint needs access to Google Drive

Overview

All error messages should align with our Foundational Standards, but additional guidance may apply depending on the component used. The most common components used to display errors are Forms, Status Messages and Alert Boxes.

Modal Dialogs can contain error messages, but should never be triggered by an error state.

Refer to Communicating System Feedback for more information on choosing the correct component. Never change the style of text (FontSkin) within a component.

Components

Form

Forms use inline validation to indicate errors and consist of:

  • Body copy (required)
    • Limit body copy to 1 sentence or phrase. Don’t use multiple sentences
    • Don’t use end punctuation
    • Use actionable language to give instructions to resolve the error

Don’t include Links.

Placement

Place error messages directly below the appropriate form field. Inline validation should always be contextually placed where the error occurs. Use the FormError subcomponent built into the Form component to do this.

If possible, move focus to the first field with an error. This makes it easier for users to identify what needs to be corrected.

Status Message

Status Messages may consist of:

  • Body copy (required)
    • Limit body copy to 1–2 sentences
    • Don’t use end punctuation for body copy with just 1 sentence or phrase
    • When using multiple sentences, do use end punctuation for all sentences
      • Exception: Don’t use end punctuation after Links
  • Link or Link as Button (optional)
    • In error messages, Links should be actionable and function as CTAs. Don’t use generic language like “Click here.” Use specific actions, like “Update billing information” instead
    • Place Links at the end of the message
    • Don’t use end punctuation when ending with a Link

Placement

Place Status Messages inline with the relevant content block. Reference Communicating System Feedback for additional information.

Alert Box

Alert Boxes may consist of:

  • Body copy (required)
    • Limit body copy to 1 phrase or 1–2 sentences
    • Don’t use end punctuation for body copy with just 1 sentence or phrase
    • When using multiple sentences, do use end punctuation for all sentences
      • Exception: Don’t use end punctuation after Links
  • Link or Link as Button (optional)
    • In error messages, Links should be actionable and function as CTAs. Don’t use generic language like “Click here.” Use specific actions, like “Update billing information” instead
    • Place Links at the end of the message
    • Don’t use end punctuation when ending with a Link

Placement

If the error applies to a specific section or action on the page, place the Alert Box near the relevant content block.

If the error applies at the page level, use a Toast. Toasts float above the page content.

Reference Communicating System Feedback for additional information.

Error states can appear within Modal Dialogs, but should never be the trigger/sole purpose of a Modal Dialog.

  • Modal Dialogs are intended for critical, page-level alerts
  • They don’t facilitate the contextual placement of error messages
  • Given the high level of visibility and interruption, they can be frustrating or alarming for users

Use Status Message or Alert Box instead, and reference Communicating System Feedback if you need help deciding.