Say that there's a search filter where the page pulls a set of metadata from the server in order to display the individual items within each filter category.

However, in some situations where a server fails to pull back the data for whatever reason, we're currently just not showing anything in the list.

This is a poor UX obviously, but I'm not sure what a better alternative is. This is a very rare occurrance, but still a genuine possibility.

enter image description here

The options we've considered are:

  1. Force a page reload to try and pull the data again (but if the issue is because of a failed server the page will reload infinitely, which is also very poor experience
  2. Serve up a browser 500 error as the page has just failed - which also isn't great, because it would still be possible to use the page, just that one specific filter isn't available this particular time
  3. Remove that filter category altogether when this issue occurs (again, not ideal, because the user will be expecting to see it).
  4. Show an error in the place of the countries list - but then what would we say there? 'Sorry the server broke a bit but try again, although that might not work anyway'?

What should we serve to the user in cases of a partial page load fail that leaves only a small part of the page unusable?

3 Answers 3


My understanding

The server has a populated List of countries in the widget because of some error.

In this case the user cannot complete the action as intended and any interaction the user has with it could lead to error, unforeseen situations and data handling abnormalities.

Do not render the incomplete widget and do not allow the user to interact with it. Instead, replace the widget with another state saying there has been an error and options to reload the widget again or cancel out of the state.

  • This is probably the safest option, but because the site will not know why it couldn't retrieve the data I'm not sure suggesting the user reload is ideal, because if the server with the data on is actually down then they could be repeatedly refreshing the page and never getting the component.
    – JonW
    Commented Nov 9, 2017 at 11:51
  • well in that case the user will probably hit cancel after a few failed attempts. Or maybe you could render an option without the countries option but this leads to consistency problems. Idea: how about you test a few ideas ;)
    – colmcq
    Commented Nov 9, 2017 at 13:45

As per my understanding, we are talking only about filters right now, I am assuming there might be a Search box as also. A user can use Search instead of Filter. We just have to drive the user to use Search.

Why not try something like the image I have attached!

enter image description here

  • hmmm, you'd be getting into mixed interactions here and I'm not sure what would happen on click to use search
    – colmcq
    Commented Nov 9, 2017 at 13:44
  • It's an interesting idea, but suggesting they use 'search' would also suggest that they don't use the remaining filters (languages and prices, in this example) when in reality those filters will still work fine.
    – JonW
    Commented Nov 9, 2017 at 13:47
  • I took it as a more generic concept. Like when Slack, Google Docs, et al fail to load because a service is down...a button try fetching the countries again. You don’t even need that capability. Just something that says, “Cannot search by country at this time, we’re making it more double-plus-awesome!”
    – Josh Bruce
    Commented Nov 9, 2017 at 16:06
  • This the right idea except that I would have the action just try to load the countries again. Something like... "Temporarily Unavailable. Click to try again." Commented Nov 16, 2017 at 17:48

I would simply display a message on the list of countries panel saying there was an issue retrieving the list of countries and provide a mechanism to manually refresh that part of the panel.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.