Good practice with asynchronous data retrieval is always to build in a timeout and error handling, with the option of (or automatic) retrying. The logic process of what happens in the event of an error is entirely up to you.
I've never had problems with local storage, but my sample size is small. I wouldn't normally worry about it besides setting up an error/debug notification in case it fails, so that end users at least have some sort of idea what happened and can report back. If it becomes a common problem, then I would look into it more closely.
Generally speaking, if you are unable to load your saved data, the game should probably treat it as if there was no saved data, and in that case progress would indeed be reset.
Ideally you would have their progress saved on the cloud (Google play services can facilitate this) but that adds another layer of complexity.