Like Max said there are more reasons for 0 than SSL problems, this includes possibly temporary failures like timeouts and host resolving. And these are the only point of retrying at all. If we're lucky http://rubydoc.info/github/typhoeus/typhoeus/Typhoeus/Response/Informations:return_code is more informative and we don't need to try to parse #return_message. Mind investigating?