Consider the next case.
I'm posting something to the server via my app. I've set up connection and respose timeout to 3000ms for example.
In the case of slow internet connection user app will throw exception which will be handled to notify the user that request has timedout, but in reality request and data have been processed by the server successefully.
Of course I would set timeout time to more than 3000ms, I was using this for testing purposes only when I notices this issue, but I can't help wondering how to handle this?