How would you design an Airbnb mobile app feature that needs to support robust error states, retries, and user messaging for network failures?