Для справки, единственный способ, которым я смог сделать это, это отключить исключения Savon:
Savon::Response.raise_errors = false
После этого мне пришлось проверить response.soap_fault? после каждого вызова SOAP, чтобы увидеть, если произошла ошибка. Тогда я мог получить доступ к деталям ошибки, используя response.to_hash.