Error Handling (Legacy)

These are high level guidelines about how any type of error should be handled depending on the context where the error occurs.

Detailed guidelines / discussion for particular causes of errors can be found in this document's sub-pages.

 

 

Error Submitting Data

Example

A user is trying to post a comment, but the network request failed. Their comment did not get posted.

UX

  • Use a standard dialog showing the error message and an "OK" button to dismiss the dialog

  • The dialog should persist until the user dismisses it (e.g. taps a button in the dialog or navigates back)

  • If the error is recoverable (for example, the user can retry the request), include an additional button to recover.

 

Use native design. (AlertDialog on Android; UIAlertController on iOS)

 
Sample Blocking Error

 

 

 

Loading Error (Nothing Cached)

Example

A user navigates to the Handouts screen for a course. The network request to load the handouts data fails, and we don't have a cached version.

UX

  • Show the error within the content area of the screen.

  • The error should be persistent.

  • If the error is recoverable (for example, the user can retry the request), include a button to recover.

 

There's no "native" widget for this, we will use our own designs.

 
Loading Error (nothing cached)

  

 

Loading Error (Cached Content Available)

Examples

  • A user navigates to the Handouts screen for a course. The network request to load the handouts data fails, but we have an old cached version of the handouts for that course.

  • A user is looking at a list of discussions. They try to reload using a refresh button or pull-to-refresh gesture. The network request fails.

UX

  • Show the cached data.

  • Show the error along the edge of the screen

  • The error should remain until dismissed by the user

  • The error should not block the user from interacting with other content on the screen.

  • If the error is recoverable (for example, the user can retry the request), include a button to recover.

 

On Android, prefer Snackbar. On iOS, we'll have a custom widget, similar to a Snackbar.

 
Loading Error (cached content)

 

Related Links