If I provide NewDevice() with an IPaddr and port that reference a web server, it will return success as long as the website hosted on that server does not return an http error. The issue is in "func (dev *Device) getSupportedServices(resp *http.Response)" This function does not check that the response is a valid SOAP response.