Issue
Currently in pigeon, if http client reaches timeout before remote endpoint is responding it defaults to returning nil. This may be hinder users that is migrating to pigeon from other http client. This was because when there is existing implementation that checks whether response code is 2xx response.code now will raise an error undefined code for Nil::Class which requires adjusting the code to handle whether the response is nil or not.
Expected result
when http client timeout it return not nil response
Actual result
return nil